vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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!

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen zu Tipps & Tricks und Workshops im vb@rchiv
Tipp 153: Cartesian2Polar 
Autor: icetea123
 Tipp anzeigenDatum: 16.01.09 17:04

Man könnte diesen Tipp vielleicht noch um eine umrechnung von Polar- in kartesische Koordinaten angeben

Function Polar2Cartesian(ByVal r As Double, ByVal b As Double, x As Double, y _
  As Double)
    x = Cos(b) * r
    y = Sin(b) * r
End Function
MfG,
icetea

-----------------------------------
Betriebssystem: Schrott (Vista)
Entwicklungsumgebung: VS 2008

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Cartesian2Polar 
Autor: Atlas
Datum: 19.01.09 09:33

Ja sicher, warum auch nicht
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Cartesian2Polar 
Autor: ModeratorDieter (Moderator)
Datum: 19.01.09 20:25

Hab' die Funktion soeben zum Tipp hinzugefügt.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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