lzz0517 发表于 2012-6-6 16:32:09

我错了,我忘了乘以这个矩阵了
1 00
0 -1 0
0 0-1

lzz0517 发表于 2012-6-6 16:38:44

那个块中包含块,块中又包含其他图形,线,圆,椭圆等图形的时候,又要怎么样计算他们的坐标呢?

highflybird 发表于 2012-6-6 16:41:23

lzz0517 发表于 2012-6-6 16:38 static/image/common/back.gif
那个块中包含块,块中又包含其他图形,线,圆,椭圆等图形的时候,又要怎么样计算他们的坐标呢?

块中块,就要一层层变换,从最内部开始,乘以块中插入块的变换矩阵,一直乘以到最外层的插入块矩阵。

highflybird 发表于 2012-6-6 16:42:28

lzz0517 发表于 2012-6-6 16:32 static/image/common/back.gif
我错了,我忘了乘以这个矩阵了
1 00
0 -1 0


另外关于椭圆分点的坐标计算方法,你可能还得看看我的那个椭圆的关于OCS的坐标算法。

lzz0517 发表于 2012-6-6 17:19:05

嗯,谢谢你这么耐心的给我回答,另外,能提供一些有关这方面的参考资料给学习一下吗?因为我感觉我这方面的知识太少了!

lzz0517 发表于 2012-6-6 20:10:11

那个就是块中包含的椭圆弧的长轴矢量坐标,是不是真的没办法算出来,并且要算出的坐标与炸开后的椭圆弧的长轴矢量坐标相同?

lzz0517 发表于 2012-6-11 10:11:32

这里是在计算插入点的法线矢量为(0,0,-1)时,计算不正确的附件

highflybird 发表于 2012-6-15 10:39:45

lzz0517 发表于 2012-6-11 10:11 static/image/common/back.gif
这里是在计算插入点的法线矢量为(0,0,-1)时,计算不正确的附件

把你的计算过程一步步地列出来。

lzz0517 发表于 2012-6-15 11:42:36

double nx=this.ix+x*Math.Cos(this.angle)*this.scalex-y*Math.Sin(this.angle)*this.scaley;
           double ny=this.iy+y*Math.Cos(this.angle)*this.scaley+x*Math.Sin(this.angle)*this.scalex;

this.ix是插入点的X坐标,this.iy是插入点的Y坐标,this.angle是插入点的旋转角度,this.scalex是插入点的X轴缩放比例,this.scaley是插入点的Y轴缩放比例,X,Y是要计算的坐标;

当插入点的法线矢量是(0,0,1)的时候,计算正确,当是(0,0,-1)的时候计算不正确!

highflybir 发表于 2012-6-15 14:51:10

lzz0517 发表于 2012-6-15 11:42 static/image/common/back.gif
double nx=this.ix+x*Math.Cos(this.angle)*this.scalex-y*Math.Sin(this.angle)*this.scaley;
           double ...

我前面说了,如果法线矢量不为(0 0 1)的话,要乘以一个矩阵
页: 1 2 3 4 5 6 7 8 9 [10] 11
查看完整版本: 椭圆弧旋转后计算角度问题