想要实现一个鼠标画线后可以选取的功能,困了好几天,说什么也不明白在多段线里面如何判断所选取的某个线段的信息,各位救命啊 

解决方案 »

  1.   

    msdn里有个例子,好像叫什么drawcli吧。
      

  2.   

    很遗憾MSDN的例子DrawCli对于线段拾取不适用,它只是判断图形对象的矩形。
    但是判断拾取第一步应该判断是否处于对象矩形内,第二步比如你的多线段,就要逐条来判断。反正任何图形对象的拾取要么用区域判断,要么最后总是拆分为线段。
    一条线段的拾取,只需要判断点到线段的距离小于允许误差范围就可以了。点到线段的距离可以用三角公式来求,MSDN上有篇文章:
    Win32: Hit Testing Lines and Curves
    讲的是用矢量计算的方法来求,应该是比较标准的。