CRect(left,top,right,bottom) 和 直线x1,y1,x2,y2 也就是线段和矩形相交的问题,我想已经有源程序,哪位能提供一下,马上给分!!
不过要求考虑的情况要比较全!!

解决方案 »

  1.   

    其实这根本是个数学题,编程上没有什么难度的,你明白如何判断就行了.由(x1,y1)和(x2,y2)这两点得出直线斜率k,根据k,(x1,y1),可求出横坐标等于right的直线上的点的坐标(x3,y3),接下来要做的就是y3与top进行比较.
    同样的判断须做四次,其他三个道理一样!代码我没有,你自己去写吧,应该不会难得到你.
      

  2.   

    1。判断两点是否都在矩形内,如果都在,则不相交(包含关系),如果有一个在,则相交。下面考虑都不在的情况。
    2。将直线的方程求出,比如ax+by+c=0。将矩形的四个顶点坐标分别代入这个方程左边进行计算,看看ax+by+c的结果是否都是正数或者都是负数,如果是,则不相交,否则相交。
      

  3.   

    zhangcrony(为了不再郁闷地生活﹐我不得不郁闷地工作) ( ) 的方法我是这样做的,效率比较低啊,而且准确度我自己也没有把握!happyparrot(快乐鹦鹉) 要考虑的问题比较多,而且比较乱,和我开始想的差不多
    听你的口气,你也没有做过类似的东西吧急求原代码!!!
      

  4.   

    我原先做的判断方式不知道你接不接受,我是将线段外扩一个象素,然后用CRgn相交来判断。
      

  5.   

    如果要判断很多次的话CRgn效率很低的啊
      

  6.   

    效率低是因为你用了浮点数!这根本没有必要! Point的值是整型的,int足够了,满足精度要求!