| |
| In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.
Hinweis: Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden! | Fragen zu Tipps & Tricks und Workshops im vb@rchivRe: Cartesian2Polar | | | Autor: Atlas | Datum: 19.01.09 09:33 |
| Ja sicher, warum auch nicht | |
Re: Cartesian2Polar | | | Autor: Atlas | Datum: 18.02.09 13:26 |
| kleine Anmerkung:
"atan2d" und damit "Cartesian2Polar" arbeiten in Grad.
Damit das ergänzte "Polar2Cartesian" besser dazu passt, sollte man davon ausgehen, dass der Eingangswert "b" auch in Grad vorliegt. Ausserdem sind m. E. x und y, bzw. sin und cos vertauscht.
Daraus folgt folgende kleine Korrektur:
Public Sub Polar2Cartesian(ByVal R As Double, ByVal b As Double, x As Double, y As Double)
x = Sin(b * Atn(1) / 45) * R
y = Cos(b * Atn(1) / 45) * R
End Sub | |
Re: Cartesian2Polar | | | Autor: icetea123 | Datum: 18.02.09 16:30 |
| Nein, der X-Wert berechnet sich aus dem Kosinus und der Y-Wert aus dem Sinus.
Deine Funktion ist falsch.
Sin(90) = 1
Cos(90) = 0
MfG,
icetea
-----------------------------------
Betriebssystem: Schrott (Vista)
Entwicklungsumgebung: VS 2008
| |
Re: Cartesian2Polar | | | Autor: Atlas | Datum: 18.02.09 17:12 |
| hmm, wollen wir doch mal sehen, ob wir nicht irgendwie zueinander kommen...
Also in "meinem" Koordinatensystem verläuft die x-Achse von links nach rechts und die y-Achse von unten nach oben. In Polar-Koordinaten ist oben 0° bzw. 360°, rechts 90°, links 270° und unten 180°.
Wenn ich jetzt einen Vektor der Länge 1 annehme und einen Winkel von 90°, erwarte ich bei der Umrechnung einen x-Wert von 1 und einen y-Wert von 0.
Und genau diese Werte liefert meine Umrechnung und Deine eben nicht.
Vermutlich ist dein Koordinatensystem in x und y vertauscht.
Da in meinem Tipp die Umrechnung von "Cartesian2Polar" das oben genannte Koordinatensystem vorraussetzt, sollte auch die Umrechnung "Polar2Cartesian" dieses koordinatensystem benutzen.
z.B.:
x = 1
y = 0
Call Cartesian2Polar(x, y, R, PHI)
Call Polar2Cartesian(R, PHI, x, y) ' x=sin(90), y=cos(90) !!!
liefert für
x = 1
und für
y nahezu 0
zuück.
Bitte überprüfe das doch erst mal bevor Du Dich wieder vorschnell äußerst.
Viele Grüße
Atlas | |
Re: Cartesian2Polar | | | Autor: icetea123 | Datum: 18.02.09 18:03 |
| Achso, ich bin vom mathematischen/geometrischen Winkelsystem ausgegangen.
Sorry,
Mfg,
icetea
-----------------------------------
Betriebssystem: Schrott (Vista)
Entwicklungsumgebung: VS 2008
| |
| Sie sind nicht angemeldet! Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevZIP40 Pro DLL
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|