明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3442|回复: 7

怎样画椭圆弧????

[复制链接]
发表于 2005-5-20 15:49:00 | 显示全部楼层 |阅读模式
请教各位高手画椭圆弧的源代码!需要这样格式的: AcDbEllipse *pEllipse1=new AcDbEllipse();
pEllipse1->setCenter(AcGePoint3d(0,0,0)); 往下就不会了!!
发表于 2005-5-23 22:25:00 | 显示全部楼层
你可以直接调用这个构造函数


< class=signature>AcDbEllipse(


< class=signatureIn>const AcGePoint3d&amp; center,


< class=signatureIn>const AcGeVector3d&amp; unitNormal,


< class=signatureIn>const AcGeVector3d&amp; majorAxis,


< class=signatureIn>double radiusRatio,


< class=signatureIn>double startAngle = 0.0,


< class=signatureInEnd>double endAngle = 6.28318530717958647692);



<TABLE class=argumentList>
<TBODY>
<TR vAlign=baseline>
<TD class=argumentName>center</TD>
<TD class=argumentDescription>Input center of the ellipse</TD></TR>
<TR vAlign=baseline>
<TD class=argumentName>unitNormal</TD>
<TD class=argumentDescription>Input vector specifying normal. This determines the plane of the ellipse.</TD></TR>
<TR vAlign=baseline>
<TD class=argumentName>majorAxis</TD>
<TD class=argumentDescription>Input vector which represents 1/2 the major axis of the ellipse </TD></TR>
<TR vAlign=baseline>
<TD class=argumentName>radiusRatio</TD>
<TD class=argumentDescription>Input ratio of the major radius to the minor radius </TD></TR>
<TR vAlign=baseline>
<TD class=argumentName>startAngle</TD>
<TD class=argumentDescription>Input start angle of the ellipse in radians</TD></TR>
<TR vAlign=baseline>
<TD class=argumentName>endAngle</TD>
<TD class=argumentDescription>Input end angle of the ellipse in radians</TD></TR></TBODY></TABLE>
 楼主| 发表于 2005-5-24 09:24:00 | 显示全部楼层
楼上的能不能写个例子啊


这个函数我也见过,但是不会用!
发表于 2005-5-25 17:31:00 | 显示全部楼层
...这个和函数无关, 去查椭圆的数学名词和方法吧..


major/minor axis是椭圆的两个轴. 完整的椭圆, 起始角=0度, 结束角 = 360度(即2*pai radian, 约等于6.28), 2D椭圆的话, normal设成z轴(0,0,1), CAD以中心点和所输入的轴长画图..而已..
 楼主| 发表于 2005-5-26 09:31:00 | 显示全部楼层
你说的那些我都知道,但是在代码实现中并不容易。如果我想画一个以(0,0,0)点为中心,长轴为10短轴为5的椭圆:


pEllipse1-&gt;setCenter(AcGePoint3d(0,0,0));//这句没问题


pEllipse1-&gt;normal(0,0,1);


pEllipse1-&gt;majorAxis(10);


pEllipse1-&gt;minorAxis(5);


后三句就都出问题了,我ARX学的不好,请指教,拜托了!


或者能给我举个例子吗?
 楼主| 发表于 2005-5-27 09:33:00 | 显示全部楼层
acedCommand(RTSTR,"ELLIPSE",RTSTR,"A",RTSTR,"0,0",RTSTR,"10,0",RTSTR,"2.5",RTSTR,"180",RTSTR,"360",RTNONE);
这种方法也能画出来,但是不知道怎样才能把它加到块中!
 楼主| 发表于 2005-5-27 10:39:00 | 显示全部楼层
问题已经解决了!!
发表于 2005-5-27 11:20:00 | 显示全部楼层
&gt;pEllipse1-&gt;setCenter(AcGePoint3d(0,0,0));//这句没问题


&gt;pEllipse1-&gt;normal(0,0,1);


&gt;pEllipse1-&gt;majorAxis(10);


&gt;pEllipse1-&gt;minorAxis(5);


&gt;后三句就都出问题了


狂汗! 你用的都不是设定值的函数(edit function)而是求值函数(query function)啊!


ARX里几乎所有的写入函数都是以setxxx形式出现的, 第一句的setCenter不就没问题么..


仔细去看一下AcGeEllipseArc类的函数列表吧..
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 05:46 , Processed in 0.149020 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表