火狐兼容模式怎么设置:小弟在用vb6.0编一个绘图程序,在用窗体做绘图容器时遇到以下问题

来源:百度文库 编辑:高校问答 时间:2024/05/09 01:35:55
我对窗体采用自定义坐标系,设定窗体scaleleft为-150,scaletop为150,scalewidth为300,scaleheight为-300。autodraw设为true.当我用circle或line方法试图画一个直径或线长超过3000的圆或直线时,图形严重失真,或者说图形混乱更确切些。我不知道该如何解决,小弟在此请教各位高手在不改变自定义坐标值的情况下,如何画出超出边界的大图形并且不失真?应采用何种技术,敬请具体说明,小弟在此感激不尽。并愿将所有积分相送!!!
以上两位的建议我看过了,但是不符合我想法。我的绘图程序要求像cad程序一样,能够缩放,我的缩放是通过定义坐标系值的大小来实现的,例如我要将一根(0,0)-(150,150)的直线放大10倍,我只要将窗体scaleleft,scaletop,scalewidth,scaleheight缩小10倍,那么它显示的效果就等于将线放大了10倍,问题的关键在于容器的自定义坐标值缩小10倍后就不能正常的用line方法画出这根线了,因为线长超出容器边界了。不知道各位还有没有更好的办法。

给你一个我的想法,
你可以自己写一个画圆的算法,算法中调用vb的line方法,用多边形模拟圆.
画圆的算法可以是brasenham算法.很好实现的.

你也可以用三角函数描点画圆,横纵坐标为r*cos(i),r*sin(i).也就是解析几何中圆的参数式,只不过是VB中的坐标定义方法不同了,但你也可以根据实际情况换算成真实的坐标系.