[ascoders] Re: draw EllipseArc

  • From: André Michelle <am@xxxxxxxxxxxxxxxxxx>
  • To: <ascoders@xxxxxxxxxxxxx>
  • Date: Tue, 3 Feb 2004 13:29:25 +0100

André Michelle wrote:
> hat jemand ein script zur drawAPI, um Ellipsensegmente zu zeichnen ?
> Ich finde nur ganze Ellipsen oder Kreissegmente. Ist nur zum
> Debuggen, daher würde ich gerne darauf verzichten, mir das
> herzuleiten.

Hat sich erledigt, ich habe eine Modifikation, von der ich dachte, sie wäre
zu ungenau.

Das Problem liegt aber woanders. Wenn ich in der Entwicklerumgebung eine
Ellipse zeichne, kopiere und Breite und Höhe um einen (gleichen) Wert
verdoppele, dann erhalte ich eine Ellipse, deren Abstand rund um die Form
genau den Abstand des Werts hat.
Wenn ich nun per Script eine Ellipse dupliziere und genau wie oben verfahre
(per _width/_height), dann ist der Abstand nicht immer gleich.


Hier der Code:

public function draw( mc ):Void {

  var segAngle, theta, angle, angleMid, segs, ax, ay, bx, by, cx, cy;

  var arc = endAngle - startAngle;

  segs = Math.ceil(Math.abs(arc)/(Math.PI/4));
  segAngle = arc/segs;
  theta = segAngle;
  angle = startAngle;
  ax = x + Math.cos( angle ) * xradius;
  ay = y + Math.sin( angle ) * yradius;
  mc.moveTo ( ax ,ay )

  if ( segs > 0 ) {

   for (var i = 0; i<segs; i++) {

    angle += theta;
    angleMid = angle-(theta/2);
    bx = x+Math.cos(angle)*xradius;
    by = y+Math.sin(angle)*yradius;
    cx = x+Math.cos(angleMid)*(xradius/Math.cos(theta/2));
    cy = y+Math.sin(angleMid)*(yradius/Math.cos(theta/2));
    mc.curveTo(cx, cy, bx, by);

   }

  }

 }



--
aM

------------------------------------------------------
Archiv   : //www.freelists.org/archives/ascoders/
Optionen : //www.freelists.org/list/ascoders
------------------------------------------------------

Other related posts: