Kurven in WebGL
Es gibt folgende zweidimensionale Kurven:
- Circle
- Bezier
- Line
- qSpline
- SplineInterpolation
und folgende dreidimensionale Kurven:
.
Die zweidimensionale Kurven können in einem
CurveArray zusammengefasst werden und
gezeichnet. Diese Liste kann als Line oder gefüllt mit einem Material dargestellt werden.
Einzelne Kurven können mit Paint(WebDevice) gezeichnet werden.
Circle
Ein Kreisbogen, der durch
Center: Mittelpunkt.
Alfa: Anfangswinkel.
Beta: Endwinkel.
aRadius: Radius in x-Richtung.
bRadius: Radius in y-Richtung.
ClockWise: die Orientierung.
gegeben ist:
z.B.:
var CI = new Circle();
CI.aRadius= 10;
CI.bRadius= 5;
CI.Alfa = Math.PI/4;
CI.Beta = 3*Math.PI/4;
CI.ClockWise = true;
WebDevice.PolygonMode=FillMode.Line;
Bezier
Eine Bezierkurve besitzt vier Kontrollpunkte. Der erste ist der Anfangspunkt der Kurve, der vierte der Endpunkt.
Die Verbindung des ersten und des zweiten Kontrollpunktes ist die Anfangstangente, die Verbindung des dritten und des vierten Kontrollpunktes die Endtangente.
Z.B.:
Erzeugen der Bezierkurve: var BE= new Bezier();
Die Kontrollpunkte:
var CP= new xyarray();
CP.add(new xy(1,0));
CP.add(new xy(4,2));
CP.add(new xy(7,5));
CP.add(new xy(8,1));
Zuweisen der Kontrollpunkte
BE.ControlPoints=CP;
Line
Ist festgelegt durch Anfangspunkt A und Endpunkt B.
var LI = new Line();
LI.A= new xy(0,0);
LI.B= new xy(10,5);
qSpline
Ist eine kubische Splinefunktion. Sie besitzt neben Anfangspunkt A, Endpunkt B einen Kontrollpunkt.
Die Verbindung von A mit dem Kontrollpunkt ist die Anfangstangente, die Verbindung von B mit dem Kontrollpunkt die Endtangente.
Z.B.:
var QS = new qSpline();
QS.A= new xy(0,0);
QS.B = new xy(10,0);
QS.Controlpoint= new xy(5,10);
SplineInterpolation
Ist eine Splinekurve, die beliebig viele Punkte interpoliert:
z.B.:
var SI = new SplineInterpolation();
var CP= new xyarray();
CP.add(new xy(0,0));
CP.add(new xy(3,2));
CP.add(new xy(5,6));
CP.add(new xy(2,4));
CP.add(new xy(1,3));
Bezier3D
Ist eine dreidimensionale Kurve. Sie ist gleich aufgebaut wie die zweidimensionale Bezierkurve. Die Koordinaten
sind aber dreidimensional.
Line3D
Ist wie die zweidimensionale Gerade festgelegt durch Anfangspunkt A und Endpunkt B.
Die Koordinaten von A und B sind dreidimensional.
z.B.
var LI = new Line();
LI.A= new xy(0,0,0);
LI.B= new xy(10,5,5);
Nurbs
Nurbs besitzen
ControlPoints
Degree
Weights
Knots
Es muss die die Knotenzahl = Kontrollpunkten+ Grad +1 sein.
Zu jedem Kontrollpunkt wird ein Gewicht gesetzt.
Ist das Gewicht groß, so ist die Attraktivität des Kontrollpunktes stark. Die Kurve geht "fast" durch den Kontrollpunkt.