本人想做一个程序,内容要包括1000多个多变型,我用画图来画,但由于那些多变型位置是随机的,因此有可能有多个多边型会重叠.
问题一:怎么用最快速的方法来画这一千多个多边型呢?
问题二:如果在程序中,我要选中其中一个多边型,我该如何判断位置呢?特别是当A的面积小于B,且A比B完全覆盖了,我该怎么才能选择到A这个多边型呢?
问题三:当我随意改变某一个多边型的大小或者位置时,我是否需要重新画所有的多边型,还是有更好的方法来只画我选中的内容呢?
以上三个问题,请各位帮忙解决,能解决一个是一个,谢谢!
问题一:怎么用最快速的方法来画这一千多个多边型呢?
问题二:如果在程序中,我要选中其中一个多边型,我该如何判断位置呢?特别是当A的面积小于B,且A比B完全覆盖了,我该怎么才能选择到A这个多边型呢?
问题三:当我随意改变某一个多边型的大小或者位置时,我是否需要重新画所有的多边型,还是有更好的方法来只画我选中的内容呢?
以上三个问题,请各位帮忙解决,能解决一个是一个,谢谢!
Private Function drawLine(ByVal i As Integer, ByVal X1 As Double, ByVal Y1 As Double, ByVal X2 As Double, ByVal Y2 As Double)
Load Line1(i)
Line1(i).X1 = X1
Line1(i).Y1 = Y1
Line1(i).X2 = X2
Line1(i).Y2 = Y2
Line1(i).Visible = True
End Function
问题二最麻烦,你只能按Line的索引来操作每一条线,操作一个多边形有困难,试想一下屏幕上有1000多个多边形是什么情形.
第二,使用BeginBegin、PolyLineTo、EndPath、PathToRegion建立多边形区域,然后通过PtInRegion、CombineRgn等函数判断多边形的相互关系和点与多边形的关系。
需要注意的是,上面两次提到PolyLineTo,这是因为在路径中,PolyLineTo并不会显示绘图结果,想要绘图结果,还得在路径外绘制一次,所以提到了两次。