Seite 1 von 1

3D-Liniendiagramm mit Tiefe

Verfasst: Di 5. Jan 2016, 23:32
von Marcel7
Hallo,

ich nutze Libre Office 4.4.5.2.

Nun möchte ich gerne eine Flugkurve eines Flugzeuges mittels 3D-Liniendiagramm nacherstellen, was auch ansatzweise klappt. Allerdings fliegt das Flugzeug nicht nur wellenmäßig in eine Richtung, sondern auch nach rechts und links, so dass die Grafik auch sogesehen Abweichungen nach vorne und hinten haben muss, also Tiefe. Ist so etwas mit Calc möglich? Ich weiß nicht wie, da ja eine Zahlenreihe ja immer nur einer Linie im Diagramm entspricht und ich müsste diese irgendwie mit einer anderen Zahlenreihe verbinden.

Die Kurve, die nachfolgend dargestellt ist, soll so angepasst sein, dass z.B. die Linie bei Punkt 2 weiter nach vorne (zum Betrachter) rückt, Punkt 3 noch weiter, Punkt 4 wieder nach hinten etc.
Kurve.jpg
Kurve.jpg (46.12 KiB) 4253 mal betrachtet


So, ich hoffe ich konnte erklären was ich möchte.

Kann jemand helfen?

Danke

Marcel

Re: 3D-Liniendiagramm mit Tiefe

Verfasst: Mi 6. Jan 2016, 10:06
von miesepeter
Hallo,

mit ein paar Verrenkungen sollte das schon machbar sein. Du musst jedoch die Kurve in Draw importieren und dort manipulieren...

Siehe Anlagen:

Flugkurve.ods
(14.82 KiB) 203-mal heruntergeladen
Flugkurve.odg
(19.52 KiB) 224-mal heruntergeladen
Flugkurve.png
Flugkurve.png (75.82 KiB) 4236 mal betrachtet
PS: Es wäre dann möglich, dieses Zeichenobjekt wieder in das Diagramm einzufügen... Dabei müssen jedoch noch ein paar Dinge beachtet werden...

Re: 3D-Liniendiagramm mit Tiefe

Verfasst: Mi 6. Jan 2016, 14:18
von Pit Zyclade
Man muß sich fragen, was Du damit zuletzt machen willst!
Soll die Flugkurve absolut korrekt sein, solltest Du ein x-y-z-Punktdiagramm erzeugen und dem Flugzeug (dem Punkt) ein selbst geschaffenes Symbol zuordnen. Das ist m.E. nach aussagekräftiger und läßt sich immer schnell wieder realisieren.

Re: 3D-Liniendiagramm mit Tiefe

Verfasst: Mi 6. Jan 2016, 18:58
von Marcel7
Hallo,

danke für Eure Antworten. Das wird für mich als Laien kompliziert ...

Ich schreibe mal genauer, was ich möchte. Eine Maschine flog ein Ausweichmanöver bei einem Angriff, blieb aber nicht in einer Flucht, sondern ist nach rechts, später nach links ausgewichen, was in den bisherigen Bildern nicht sichtbar ist. In die Kurve selber möchte ich später kleine Abbildungen eines Flugzeuges einfügen.

Anders ausgedrückt, möchte ich das nachfolgende Bild in 3D umwandeln (oben Sicht von oben darunter von der Seite), eine andere Darstellung (nur grober Anhaltspunkt) ist darunter zu sehen.

Würde mich über weitere Hilfe freuen. Wie geht das mit dem xyz Punkt Diagramm? Hört sich erstmal gut an ...

Marcel
corkscrew1.jpg
corkscrew1.jpg (186.15 KiB) 4207 mal betrachtet
corkscrew3.jpg
corkscrew3.jpg (246.1 KiB) 4207 mal betrachtet

Re: 3D-Liniendiagramm mit Tiefe

Verfasst: Mi 6. Jan 2016, 19:50
von lorbass
Marcel7 hat geschrieben:Wie geht das mit dem xyz Punkt Diagramm?
Gar nicht. Zum Zeichnen eines Korkenziehers „mit Seele“, wie der Weinkenner diese Kurve bezeichnen würde, ist Calc schlichtweg nicht gemacht.

Ich denke, mit gnuplot sollte das machbar sein. Allerdings ist die Bedienung nicht ganz trivial. Aber vielleicht findest du in den zahlreichen enthaltenen Beispielen irgendwas, was dir weiterhilft. (Erster Treffer meiner Suche nach »gnuplot corkscrew«: → http://www.swigerco.com/gnuradio/plotting.html)

Gruß
lorbass

Re: 3D-Liniendiagramm mit Tiefe

Verfasst: Mi 6. Jan 2016, 20:01
von Marcel7
Schön formuliert lorbass, danke für deine Hilfe.

Marcel

Re: 3D-Liniendiagramm mit Tiefe

Verfasst: Mi 6. Jan 2016, 22:26
von karolus
Hallo

Dann gibts da noch matplotlib, mit Beispiel aus http://matplotlib.org/1.4.3/mpl_toolkit ... line-plots
leicht abgewandelt aus `ìpython notebook`

Code: Alles auswählen

%matplotlib inline

import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt

mpl.rcParams['legend.fontsize'] = 10

fig = plt.figure()
ax = fig.gca(projection='3d')
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
x = np.linspace(-2, 2, 100)
r = x**2 + 1
z = r * np.sin(theta)
y = r * np.cos(theta)
ax.plot(x, y, z, label='parametric curve')
ax.legend()

plt.show()
liefert folgende Ausgabe:
3d_kurve.png
3d_kurve.png (31.55 KiB) 4191 mal betrachtet