我的ARX 发表于 2005-5-20 15:49:00

怎样画椭圆弧????

请教各位高手画椭圆弧的源代码!需要这样格式的:


AcDbEllipse *pEllipse1=new AcDbEllipse();<BR>        pEllipse1-&gt;setCenter(AcGePoint3d(0,0,0));


往下就不会了!!


onlyballac 发表于 2005-5-23 22:25:00

你可以直接调用这个构造函数


<P class=signature>AcDbEllipse(


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


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


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


<P class=signatureIn>double radiusRatio,


<P class=signatureIn>double startAngle = 0.0,


<P 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>

我的ARX 发表于 2005-5-24 09:24:00

楼上的能不能写个例子啊


这个函数我也见过,但是不会用!

pandoram 发表于 2005-5-25 17:31:00

...这个和函数无关, 去查椭圆的数学名词和方法吧..


major/minor axis是椭圆的两个轴. 完整的椭圆, 起始角=0度, 结束角 = 360度(即2*pai radian, 约等于6.28), 2D椭圆的话, normal设成z轴(0,0,1), CAD以中心点和所输入的轴长画图..而已..

我的ARX 发表于 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学的不好,请指教,拜托了!


或者能给我举个例子吗?

我的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);<BR>这种方法也能画出来,但是不知道怎样才能把它加到块中!

我的ARX 发表于 2005-5-27 10:39:00

问题已经解决了!!

pandoram 发表于 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类的函数列表吧..
页: [1]
查看完整版本: 怎样画椭圆弧????