Forum: PC-Programmierung Scilab: Zwei Winkel auf Torusoberfläche darstellen


von Benjamin P. (drank)


Lesenswert?

Hallo,

im Rahmen meiner Masterarbeit möchte ich den Aktuationsraum von zwei 
mechanische gekoppelten Motoren darstellen. Jeder Motor kann sich von 0° 
- 360° (bzw. 0-2 Pi) drehen.

Die Darstellung erfolgt am besten über eine Torusoberfläche.

Winkel 1 bestimmt den Winkel um die Z-Achse des 3D-Plots und Winkel 2 
soll dann der Winkel im Torusquerschnitt sein.

Einen Torus über plot3D zu erstellen ist soweit kein Problem, aber eine 
Kurve entlang einer Torusoberfläche (vermutlich mit param3d) 
darzustellen ist mir bislang leider noch nicht gelungen.

Ich würde mich freuen, wenn der ein oder andere einen Typ für mich hat, 
wie ich das mathematisch am besten umsetzen kann.

Zusammengefasst:
Winkel 1 (0-360) wird um die z-Achse des Plots aufgetragen.
Der Radius r1 ist beliebig und konstant.
Winkel 2 (0-360) ist der Winkel um den von Winkel1 festgelegten Punkt.
Der Radius r2 ist beliebig und konstant.

Beispiel: Ist r2 und Winkel 2 = 0, Winkel 1 geht von 0 bis 360° und r1 
ist 2, so entsteht ein ebener Kreis mit dem Radius 2.

Ich hoffe, ich habe mein Problem gut genug erklärt.

Vielen Dank!

von Tom (Gast)


Angehängte Dateien:

Lesenswert?

Vielleicht kann man das Prinzip erkennen, falls ich die Frage verstanden 
habe.

von Benjamin P. (drank)


Lesenswert?

Ja, exakt das suche ich. Kannst Du mir den Code zu deiner SVG schicken? 
Egal in welcher Software. Ich werde mir das dann selbst übersetzen.

Gruß

von Benjamin P. (drank)


Angehängte Dateien:

Lesenswert?

Danke für deinen Anstupser. Ich habe es jetzt auch recht fix selbst 
hinbekommen. Deine trivialen Skizzen haben geholfen.
1
    phi1 = linspace(0,360,360);
2
    phi2 = linspace(0,20*360,360);
3
4
    r1 = 10;
5
    r2 = 0.5;
6
    
7
    xTorus = sind(phi1) .* (r1+sind(phi2).*r2);
8
    yTorus = cosd(phi1) .* (r1+sind(phi2).*r2);
9
    zTorus = cosd(phi2) .* r2;
10
    
11
    param3d( xTorus, yTorus, zTorus);

Gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.