VB编程在PictureBox中画圆弧,自定义坐标系,三点,Circle函数是不是有什么缺陷啊?

VB编程在PictureBox中画圆弧,自定义坐标系,且坐标系宽高比与PictureBoxScale宽高比一致,毫米单位,三点圆弧,当三个点的位置接近在一条直线上时,Circle画圆弧就会出现加大偏差。如图,两条圆弧皆为选中状态,左边圆弧较为正常,但右边的圆弧则有偏差,右线下方两端有蓝色和绿色点,为终点和起点,箭头指示圆弧方向。
!!!每当三点近乎在一条直线上画线时,总会出现较大偏差。而且当精确读取线条位置坐标时,有的也会有10个丝左右的偏差。

求VB界大神帮忙!

第1个回答  2013-01-17
这不是缺陷,是因为计算机的显示系统,点与点之间有距离造成的。
. . . . .
. . . . .

. . . . .
. . . . .
. . . . .
如图,如果画线时候,线在一条直线上,当然无问题。
如果不在一条直线上,假设第一点在(1,1)位置,第二点在(1.4,1,4)位置上,由于显示器不能显示
(1.4,1,4)位置,所以会用近似值代替,使用(1,1)或者(2,2)来代替。这样当类似这样的点多的时候,就会产生这种扭曲现象。

你可以使用gdi+编程,它使用了优化算法,使图像更近似直线。效果要好得多。追问

不好意思   用三点画圆弧时,当三个点的位置趋近于一条直线时,如起点A、中点B、终点C三点,AB和BC斜率接近时所画出的弧线,与实际位置有较明显偏差。三条标示线,红线分别是起点圆心、起点中点,蓝线是中点圆心、中点终点,绿线是终点圆心、终点起点。左图三点间斜率差异明显画图正常,但右图中 起点中点斜率和中点终点斜率相近时,圆弧就变形了,但是标示线的坐标位置确实正确的。

所以,右边怎么会这样呢?

来自:求助得到的回答
第1个回答  2013-01-17
很专业的问题
相似回答