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