问题如题,
1.对直线进行选择,我做了一个,思路是:根据一点到直线两端的距离等于直线的长度,这样做虽然可以选种,但是很难。
我现在想画线的时候可不可以同时在直线周围构造一个区域,这样只要判断鼠标当前是否在区域内就可以了。
2.也想为画的每条直线命名,并且画线结束后可以显示出来。
希望大家踊跃发言,讨论讨论,给点意见,谢谢。

解决方案 »

  1.   

    1.对直线进行选择,我做了一个,思路是:根据一点到直线两端的距离等于直线的长度,这样做虽然可以选种,但是很难。 
    我现在想画线的时候可不可以同时在直线周围构造一个区域,这样只要判断鼠标当前是否在区域内就可以了。这样(想画线的时候可不可以同时在直线周围构造一个区域)不够科学,你怎么构造矩形?最大最小点?不合适吧。
    你可以这样做:构造缓冲区。目前很多GIS软件都是这么做的,也就是控制精度。 根据一点到直线两端的距离直线的长度的差值在某一个范围内,比如:小于3个像素,这样就很容易实现选中状态了。2.也想为画的每条直线命名,并且画线结束后可以显示出来。 这个程序应该很容易实现吧,定义一个结构,其中有一个属性是Name,有一个属性是x和y.这样不久很容易实现了!
    祝好!
      

  2.   

    谢谢!
    命名这个知道怎么做了,用DrawString(),就可以显示在直线旁边了.
      

  3.   

    这两个问题,想法很简单,做起来很麻烦:
    思路:1:用颜色判别的方法来选中图形,当然不是把所有的线都画出来再判断,是得先进行矩形区域筛选+屏幕裁剪后的图形,然后取
      N*N矩形(N为像素值)判断颜色;2:选中之后高亮显示选中的实体,同时要画出该实体的矩形框及角点;3:拖动角点改变直线的坐标(体现为拉申及缩小或平移),这得用橡皮筋来画吧~4:为了防止图形在变形时闪烁,得构造一个比较好的双缓冲方法......总得来说,你把这个问题完美地实现了,那GDI+编程的基本应用也就搞懂了..goooooooooooood  luck~
      

  4.   

    楼上说的有道理。
    MARK
      

  5.   

    2 lou shuo de bu cuo ,wang na fang mian xiang xia !