Sinus-Kurve auf Kugeloberfläch < Maple < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 12:16 So 11.06.2006 | Autor: | iosis |
Hallo,
ich möchte in Maple eine Sinus-Funktion in Polarkoordinaten darstellen, d.h. die Sinusfunktion auf einer Kugeloberfläche abbilden. Wie kann ich das machen?
Kann mir jemand dabei helfen?
Gruß
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt
|
|
|
|
Hallo,
du schreibst nicht, ob du die Kugel selbst auch brauchst. Was aber die Kurve angeht, habe ich da etwas Selbstgeschriebenes:
sphereplot := (f,heightfactor) -> plots[spacecurve]([sqrt(1-(heightfactor*f(t))^2)*cos(t),sqrt(1-(heightfactor*f(t))^2)*sin(t),heightfactor*f(t)],t=0..2*Pi,numpoints=10000,scaling=constrained,axes=boxed);
Hier steht f für eine Funktion und heightfactor für den Skalierungsfaktor zwischen Maximum der Funktion und dem "Breitengrad" über dem "Äquator" (entsprechend: Minimum).
Probier es doch mal aus:
sphereplot(x->sin(4*x),0.6);
Ich hoffe, das ist, was du gemeint hast.
Gruß
Martin
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 19:12 So 11.06.2006 | Autor: | iosis |
Danke Martin für die Funktion! Sieht sehr gut aus.
Die Formel für die Kugel habe ich aus dem Internet gesucht.
Die hab ich momentan so geschrieben:
klick
Was mir aber noch offen geblieben ist, wie kann ich beiden Darstellungen in einer darstellen? Mit Display hats irgendwie nicht funktioniert und die andere Frage wäre noch, wie kann ich bei der Kugelgleichung sagen, dass ich nur die obere Hälfte der Kugel darstellen möchte und auch die Sinus Funktion nur auf der oberen Hälfte, aber vollständig, verläuft?
Bzw. wie kann ich bei deiner Funktion sagen, dass das Minimum, nicht unterhalb der Äquatorlinie liegt und der Maximum, nicht oberhalb des Nordpols?
Gruß
|
|
|
|
|
Hallo,
ich habe eben gemerkt, dass es in Maple bereits eine eingebaute Funktion mit dem Namen "sphereplot" gibt (Package plots), also nenne ich meine Kreationen nun kugelplot.
Ich habe nun einen dritten Parameter eingebaut, der den Plot in y-Richtung verschiebt:
with(plots): kugelplot_pur := (f, y_scale, y_offset) -> spacecurve([sqrt(1-(y_offset+y_scale*f(t))^2)*cos(t),sqrt(1-(y_offset+y_scale*f(t))^2)*sin(t),y_offset+y_scale*f(t)],t=0..2*Pi, numpoints = 1000, scaling = constrained, axes = boxed);
f ist die Funktion.
y_scale ist die Skalierung. Der Wert 1 lässt die Sinusamplitude vom Nordpol (=+1) bis zum Südpol (=-1) schwingen. Also sollte man hier einen Wert [mm] \le [/mm] 1 wählen.
y_offset verschiebt die Kurve in y-Richtung. Ein Wert von +1 verschiebt den Äquator, also die x-Achse, bis zum Nordpol. Der Wert -1 schiebt ihn bis zum Südpol.
Die obige Funktion plottet nur die Funktion. Für einen Plot inklusive Kugel/Halbkugel benutze bitte folgende Funktionen:
1: | kugelplot := (f, y_scale, y_offset) -> display(kugelplot_pur(f, y_scale, y_offset), plot3d(1, x=0 .. 2*Pi, y=0 .. Pi, scaling=constrained,
| 2: | style=hidden, orientation=[11, 73], coords=spherical, color=yellow)); |
bzw.
1: | halbkugelplot := (f, y_scale, y_offset) -> display(kugelplot_pur(f, y_scale, y_offset), plot3d(1, x=0 .. 2*Pi, y=0 .. Pi/2, scaling=constrained,
| 2: | style=hidden, orientation=[11, 73], coords=spherical, color=yellow)); |
Wenn ich dich richtig verstehe, brauchst du etwas von der Sorte:
halbkugelplot(x->sin(4*x), 0.4, 0.5);
Natürlich kannst du die Parameter - insbesondere die Farben - optimieren. Viel Spaß!
Ach ja! Ignoriere diese Zeilennummern...
Gruß
Martin
|
|
|
|