level 3
我用的graphics类,pen画笔,然后鼠标一移动,前面的点一直保存,就相当于线动成面,结果就是画了一个面
2018年03月15日 14点03分
3
level 8
你需要保存一个旧坐标,在鼠标移动的时候用背景色把旧的那条线段覆盖住
2018年03月15日 23点03分
5
背景是一张图片,我用这个框选一张图片中的某个特征,记录这个特征在图片的位置
2018年03月16日 01点03分
回复 唐家七少6 :那就用Visual Basic Power Pack中的LineShape
2018年03月16日 10点03分
@Strawberry_BD 这个lineshape似乎对鼠标操作不是很友好呢,因为开始没有的,或者是隐藏的,我用鼠标操作具体的就是下面的过程,只是平台是VB.net
2018年03月17日 05点03分
level 3
前面的《MFC基本图形的绘制(三)在SDI中实现绘图操作》对多边形的绘制做了一个简单的介绍。尽管也实现了多边形的绘制,但那种方法有很大的局限性,最主要的就是表现在多边形的顶点(个数和位置)必须固定。通常在实际的项目中,多边形的顶点个数和位置并不固定。例如在进行道路计算时,可能会避开某些区域(规避区域),这样就需要在道路计算之前在地图中设置一个规避区域,该区域通常会是一个不规则的多边形,顶点个数和位置都不会固定不变。下面就介绍在MFC中这种多边行绘制的实现过程。(注:在实际的项目中可能会有单独的绘制引擎来实现多边形的绘制,那就另当别论,这里暂不理会)
设计思路:
在菜单项中点击绘制多边形的命令后,在窗口中点击鼠标左键,每次点击的位置即为多边形的某个顶点,
第一次点击时,显示该点(可通过代码控制将点扩大并用颜色填充便于显示);
第二次点击时,界面上出现两个点,且第一个点为红色,第二个点(终点,当前点为蓝色),没有连线;
第三次点击时,第一个和第二个顶点连接,第一个(起点)和第三个(终点,当前点为蓝色)连接,组成一个多边形(三角形);
第四次点击时,第二个和第三个顶点连接(第一个和第二个顶点已连接),第一个(起点)和第四个(终点,当前点为蓝色)连接,组成一个多边形(四边形);
。。。 。。。
第n次点击时,第n-2个和第n-1个顶点连接(第n-2个之前的顶点已连接),第一个(起点)和第n个(终点,当前点为蓝色)连接,组成一个多边形(n边形);
点击鼠标右键时,将多边形的点数清零,便于后续绘制(否则多边形会累计增加边长)
说明:上面就是归纳的用鼠标操作绘制多边形的方法。这里只能保证当前界面有效,绘制后隐藏界面绘制的内容可能会消失,这涉及到重绘和保存,这个会单独讨论。这里只关注绘制多变形的实现。
2018年03月17日 05点03分
6