Seite 1 von 1

Grafische Ausgabe von Zykloiden

Verfasst: Dienstag 26. Mai 2020, 12:03
von Anakonda
Hallo zusammen,
als Anfänger in Python dachte ich mir, was "einfaches"zu realisieren. Doch nicht so einfach :o Ich möchte einen Rollkreis, wie er z.B. bei Zahnrädern entsteht, in einem Plot ausgeben. Also zuerst den jeweiligen Mittelpunkt des rollenden Rades bestimmen, dann mit dem Übersetzungsverhältnis bestimmen, um wieviel Grad sich die Position des drehenden Rades verändert hat usw.
Nun scheitere ich bereits bei der einfachen Darstellung des "Mittelpunktkreises" (s. Quellcode). Das sieht eher aus wie irgendwas mit Edding gemalt. Für Tips wäre ich sehr dankbar.

Code: Alles auswählen

import sys
import math
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

r_stator = int (input("Stator-d eingeben: "))
r_rotor = int (input("Rotor-d eingeben: "))

hypothenuse = r_rotor + r_stator

x_liste = []
y_liste = []
winkel = 0
for i in range(360):
    temp = []
    for j in range(1):
        j=round(math.cos(winkel),3) * hypothenuse
        temp.append(j)
        winkel = winkel + 1
    x_liste.append(temp)
winkel = 0

for k in range(36)0:
    temp = []
    for l in range(1):
        l=round(math.sin(winkel),3) * hypothenuse
        temp.append(l)
        winkel = winkel + 1
    y_liste.append(temp)
winkel = 0

plt.plot(x_liste, y_liste, 'r-') ######, linewidth = 0.05)
plt.show()
/code]

Re: Grafische Ausgabe von Zykloiden

Verfasst: Dienstag 26. Mai 2020, 13:28
von Sirius3
Ich weiß nicht, was Dir an der Graphik nicht gefällt. Kannst Du das näher beschreiben?
Einbuchstabige Variablennamen sind meist schlecht, vor allem, wenn sie l heißen.
Was die temp(eratur) da zu suchen hat, ist mir auch ein Rätsel, Abkürzungen in Variablnamen führen nur zur Verwirrung.
sys und numpy werden importiert, aber nicht genutzt.

Die for-Schleifen über j und l mit einem Element sind ziemlich witzlos, vor allem, weil j und l gar nicht benutzt werden, sondern durch andere Zahlen(-typen) überschrieben werden. Das ist alles sehr unverständlich.
i bzw. k sind auch immer identisch zu winkel. Es ist schlecht, dass die x- und y-Werte in zwei getrennten Schleifen berechnet werden. Gerundet wird nur bei der Ausgabe, nicht bei internen Ergebnissen.

Code: Alles auswählen

import math
import matplotlib.pyplot as plt

radius_stator = int(input("Stator-d eingeben: "))
radius_rotor = int(input("Rotor-d eingeben: "))
hypothenuse = radius_rotor + radius_stator

x_values = []
y_values = []
for winkel in range(360):
    x = math.cos(winkel) * hypothenuse
    y = math.sin(winkel) * hypothenuse
    x_liste.append(x)
    y_liste.append(y)

plt.plot(x_values, y_values, 'r-')
plt.show()

Re: Grafische Ausgabe von Zykloiden

Verfasst: Dienstag 26. Mai 2020, 14:14
von Anakonda
Hallo Sirius,
zusammen erst mal danke für die Antwort. Mir gefällt nicht an dem Bild, dass es so eine Art "dicker Ring" war. Nachdem ich mit den Zahlen in den j-Schleifen rumgespielt habe, komme ich schon etwas näher dran, wo ich hin will. Der Winkel wird doch allem Anschein nach in jedem Durchlauf um 1 inkrementiert. Wenn ich z.B. diesen Wert auf 30 erhöhe, sieht das ganze annähernd aus, wie es sein soll. Den part mit der temp[] habe ich aus einem matplotlib-Beispiel rausgefischt und weiter dran gebastelt. Wie schon gesagt, bin Anfänger. Ich würde mal ein Bild reinstellen, wenn ich wüsste, wo ich Anhänge hochladen kann.

Re: Grafische Ausgabe von Zykloiden

Verfasst: Dienstag 26. Mai 2020, 16:27
von __blackjack__
@Anakonda: Bei imgur.com kann man beispielsweise Bilder hochladen die sich in Foren einbinden lassen.

Re: Grafische Ausgabe von Zykloiden

Verfasst: Dienstag 26. Mai 2020, 22:27
von Anakonda
Hi blackjack, danke für den Hinweis....allerdings kann ich nicht erkennen, wie ich mit Anhang was hier posten kann .[img]file:///C:/Users/frank/OneDrive/Bilder/zyklo.pdf[/img]

Re: Grafische Ausgabe von Zykloiden

Verfasst: Dienstag 26. Mai 2020, 22:49
von __blackjack__
@Anakonda: Man kann bei imgur.com Bilder hochladen und die dann mit dem img-Tag hier einbinden. PDFs auf Deiner Festplatte kann natürlich aus gutem Grund niemand einfach so von aussen ansehen.

Re: Grafische Ausgabe von Zykloiden

Verfasst: Mittwoch 27. Mai 2020, 11:04
von Anakonda
Hi nochmal, nach dem Tip von Blackjack habe ich jetzt mal 2 Bilder hochgeladen. So soll es nicht aussehenBild[/img], sondern soBild[/img]. Hoffe mal, dass es funzt. Ein Bild sagt ja mehr als 1000 Worte :wink:

Re: Grafische Ausgabe von Zykloiden

Verfasst: Mittwoch 27. Mai 2020, 11:10
von sparrow
Ich bin mal so frei die Tags richtig zu benutzen:

Falsch:
Bild

Richtig:
Bild

Re: Grafische Ausgabe von Zykloiden

Verfasst: Mittwoch 27. Mai 2020, 11:11
von Anakonda
jop, genau so siehts aus. Nur schade, dass man in der Vorschau nicht erkennen konnte, was ist welches.

Re: Grafische Ausgabe von Zykloiden

Verfasst: Freitag 29. Mai 2020, 21:33
von Anakonda
Sirius3 hat geschrieben: Dienstag 26. Mai 2020, 13:28 "Gerundet wird nur bei der Ausgabe, nicht bei internen Ergebnissen."
Dazu hab ich eine grundsätzliche Frage: Wenn ich schon bei internen Ergebnissen runde, geht zwar die mathematische Genauigkeit runter (klar), aber doch dafür die Geschwindigkeit während der Ausführung hoch, oder täusche ich mich da? Oder ist es so, dass die Zahl sowieso als "float" vorliegt und damit eh den Speicherplatz von keine Ahnung wieviel Bits in Anspruch nimmt?

Re: Grafische Ausgabe von Zykloiden

Verfasst: Freitag 29. Mai 2020, 21:53
von __deets__
Du gewinnst nichts durch Rundung. Das sind alles 64 Bit doubles.