lzz0517 发表于 2012-6-1 16:28:33

我可以求出椭圆弧的圆心坐标并且与CAD上显示的一样,只是求出椭圆弧的起始点和终止点坐标对不上CAD上面显示的!

lzz0517 发表于 2012-6-1 16:32:49

本帖最后由 lzz0517 于 2012-6-1 16:36 编辑

highflybird 发表于 2012-6-1 16:27 static/image/common/back.gif
我这里求的是椭圆弧形的端点
你可以把 x,y,z换成块内的其他坐标也行,譬如圆心。
谢谢你的及时回答,不过你求出的这个端点坐标与CAD上显示的不一样的哦
CAD上显示的端点坐标为(3276.4205,2683.4176),起点坐标(3388.742,2291.0306)

highflybird 发表于 2012-6-1 16:43:20

我求的是下面的

lzz0517 发表于 2012-6-1 16:44:37

highflybird 发表于 2012-6-1 16:27 static/image/common/back.gif
我这里求的是椭圆弧形的端点
你可以把 x,y,z换成块内的其他坐标也行,譬如圆心。

你说的这个端点坐标应该是椭圆弧的长轴端点坐标吧?不是椭圆弧的端点坐标吧?

highflybird 发表于 2012-6-1 16:47:06

lzz0517 发表于 2012-6-1 16:44 static/image/common/back.gif
你说的这个端点坐标应该是椭圆弧的长轴端点坐标吧?不是椭圆弧的端点坐标吧?

不是,你为什么不量一下呢?

lzz0517 发表于 2012-6-1 16:49:02

本帖最后由 lzz0517 于 2012-6-1 16:49 编辑

highflybird 发表于 2012-6-1 16:43 static/image/common/back.gif
我求的是下面的
-1*cos(106.49117163)*3217725.0267-1*sin(106.49117163)*532343.1616+(-399474.16370
012)=3489.30538
-1*sin(106.49117163)*3217725.0267+1*cos(106.49117163)*532343.1616+3238438.335050
16=1964.32284
你的这两个算式中有两个值是从哪得到的?(3217725.0267,532343.1616)这个坐标值是怎么计算的呢?

highflybird 发表于 2012-6-1 16:50:33

对于椭圆弧的端点,可以用: AcDbCurve::getPointAtParam 来获得起点和终点
Param 就是椭圆的起始角度和终点角度,这个数值存储在DXF码中。
或者你干脆用AcDbCurve::getStartPoint和 getEndPoint这两个成员函数来获取

lzz0517 发表于 2012-6-1 16:56:23

本帖最后由 lzz0517 于 2012-6-1 16:58 编辑

highflybird 发表于 2012-6-1 16:50 static/image/common/back.gif
对于椭圆弧的端点,可以用: AcDbCurve::getPointAtParam 来获得起点和终点
Param 就是椭圆的起始角度和终 ...
根据椭圆弧的起始角度和终点角度,圆心坐标,还有长半径和短半径,通过数学函数能求哪两个值吗?

highflybird 发表于 2012-6-1 16:59:42

lzz0517 发表于 2012-6-1 16:56 static/image/common/back.gif
根据椭圆弧的起始角度和终点角度,圆心坐标,还有长半径和短半径,通过数学函数能求哪两个值吗?

可以求起点坐标,端点坐标。
利用坐标旋转公式。

lzz0517 发表于 2012-6-1 17:03:10

本帖最后由 lzz0517 于 2012-6-1 17:04 编辑

是不是这样的,sx=lr*math.cos(sa),sy=sr*math.sin(sa);
nsx=sx*math.cos(ra)-sy*math.sin(ra)+x0;
nsy=sy*math.cos(ra)+sx*math.sin(ra)+y0;
这里求的是起点坐标;lr是长半径,sr是短半径,sa是DXF中记录的起始弧度值,ra是椭圆弧的旋转弧度值,(x0,y0)是圆心坐标

我在求起点和端点坐标时,就是这样求的,可是总对不上CAD上显示的,所以才到这里进行求解!
页: 1 2 [3] 4 5 6 7 8 9 10 11
查看完整版本: 椭圆弧旋转后计算角度问题