Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Kugelkoordinaten berechnen, bräuchte hilfe... (https://www.delphipraxis.net/144660-kugelkoordinaten-berechnen-braeuchte-hilfe.html)

turboPASCAL 13. Dez 2009 17:21


Kugelkoordinaten berechnen, bräuchte hilfe...
 
Hi,

ich komm ned voran, mit der Berechnung der Koordinaten auf einer Kugel. :cry:

ich hatte mir es ungefähr so vorgestellt:

Code:
XPos = BerechneHorizontale(Radius, 360°)
YPos = BerechneVertikale(Radius, 45°)
Aber irgendwie funktioniert die Kreisberechnung für Horizontale und somit auch der Vertikalen nicht.
Oder ich bin auf dem völlig falschen Weg...

Zeigen will ich euch meine Versuche nicht, da ihr mich sonst auslacht. :mrgreen:

Wolfgang Mix 13. Dez 2009 17:33

Re: Kugelkoordinaten berechnen, bräuchte hilfe...
 
Habe zwar im Moment auch keine Ahnung, aber vielleicht kommst du hier weiter

Gruß

Wolfgang

turboPASCAL 13. Dez 2009 17:47

Re: Kugelkoordinaten berechnen, bräuchte hilfe...
 
Zitat:

Zitat von Wolfgang Mix
...aber vielleicht kommst du hier weiter

Nein.

Kommt nur :shock: :gruebel: :coder2: http://freenet-homepage.de/mgsdh/ima...icon_irre_.gif http://freenet-homepage.de/mgsdh/ima...eys/sabber.gif bei raus. http://freenet-homepage.de/mgsdh/ima...n_bawling_.gif

Wolfgang Mix 13. Dez 2009 17:52

Re: Kugelkoordinaten berechnen, bräuchte hilfe...
 
Bogenmaßproblem?

turboPASCAL 13. Dez 2009 18:52

Re: Kugelkoordinaten berechnen, bräuchte hilfe...
 
Nein, denke ich mal.

So schaut's aus:

Delphi-Quellcode:
function SphericalCoordinates(r, vGrad, hGrad: single): TVector3D;
var
  st, ct, sp, cp: single;
begin
  // Grad zu Rad
  st := sin(vGrad * Pi / 180); // Theta
  ct := cos(vGrad * Pi / 180);
  sp := sin(hGrad * Pi / 180); //Phi
  cp := cos(hGrad * Pi / 180);

  // Kreiskoordinaten berechnen
  // x = r * sinTheta * cosPhi
  // y = r * sinTheta * sinPhi
  // z = r * cosTheta

  Result.X := r * st * cp;
  Result.Y := r * st * sp;
  Result.Z := r * ct;
end;

Wolfgang Mix 13. Dez 2009 19:13

Re: Kugelkoordinaten berechnen, bräuchte hilfe...
 
Zeichne 'mal bitte 'ne Skizze und zeige sie

turboPASCAL 13. Dez 2009 20:22

Re: Kugelkoordinaten berechnen, bräuchte hilfe...
 
Hm, :gruebel:

es scheint zu funktionieren. Möglicher weise habe ich einen "Folgefehler" begangen
der im eigentlichen nichts mit der Berechnung der Koordinaten auf der Kugel zu schaffen
hat. Es kann sein das die Umsetzung in OpenGL einen Denkfehler hat...

Per 2D funktioniert es.

Delphi-Quellcode:
procedure TForm1.FormPaint(Sender: TObject);
var
 x,y : integer;
 v: TVector3D;
begin
  for y := 0 to 36 do
    for x := 0 to 36 do
    begin
      v := SphericalCoordinates(80, x*10, y*10);
      canvas.Pixels[100+round(v.x + (v.z/15)), 100+round(v.y - (v.z/15))] := rgb(BYTE(round(v.z)),0,0);
    end
end;

Wolfgang Mix 13. Dez 2009 20:38

Re: Kugelkoordinaten berechnen, bräuchte hilfe...
 
Ich dachte, dü wärst TP-Fan. Solch Nervkram versuche ich erstmal mit
Turbo-Pascal. Delphi und andere Programme liefern immer noch zu viele
Zusatzfehler, sh. die Math.dcu, die noch immer nicht frei von Fehlern ist.

Liebe Grüße

Wolfgang


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz