| |
| 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 |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevGraph (VB/VBA)
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! 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
|
|