AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Ebenengleichung darstellen (durch X mal Y Punkte)
Thema durchsuchen
Ansicht
Themen-Optionen

Ebenengleichung darstellen (durch X mal Y Punkte)

Ein Thema von treeRunner · begonnen am 2. Feb 2011 · letzter Beitrag vom 3. Feb 2011
Antwort Antwort
treeRunner

Registriert seit: 18. Jan 2011
5 Beiträge
 
#1

Ebenengleichung darstellen (durch X mal Y Punkte)

  Alt 2. Feb 2011, 07:41
Hey Leute.

Ich habe eine Ebene (in der Form: Normale - Distanz = 0) und wollte mir diese zu Übungszwecken darstellen (weil ich noch andere Sachen wie Schnittgerade von Ebenen lernen will).

Weil die Ebene ja "nur" zwei-dimensional ist, habe ich mir schonmal gedacht, dass ich nur zwei Schleifen brauche. Aber was mache ich dann mit den drei Vektor-Werten der Normalen (und der Distanz)?

Ich bin in der Mathematik nicht fit und würde es sehr nett finden, wenn man mir das mal erklären möchte.

Viele Grüße,
treeRunner
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

AW: Ebenengleichung darstellen (durch X mal Y Punkte)

  Alt 2. Feb 2011, 15:59
Ich nehme mal an, mit "Normale - Distanz = 0" meinst du die HNF?

Zur Darstellung kommt es wesentlich darauf an, wie es am Ende aussehen soll. Denn eine Ebene ins 2dimensionale projiziert ist sehr langweilig: Entweder wird's eine Ebene oder ein Strich. Und um eine Ebene am PC darzustellen musst du sie irgendwie in 2D projizieren. Es sei denn, du fügst Tiefeninformation z.B. mit einem Farbgradienten hinzu. Dann hast du aber auch "nur" einen linearen Farbverlauf auf dem Bildschirm, also nix besonderes.

Anschaulich machen kann man sich die HNF am besten indem man eine Dimension wegnimmt und eine HNF zur Beschreibung einer Geraden hernimmt.
  Mit Zitat antworten Zitat
treeRunner

Registriert seit: 18. Jan 2011
5 Beiträge
 
#3

AW: Ebenengleichung darstellen (durch X mal Y Punkte)

  Alt 2. Feb 2011, 17:34
Hey jfheins,

zur Darstellung habe ich ein laufendes OpenGL-Projekt. Ich habe mir auch schon eine steuerbare Kamera eingebaut.

Jep, die HNF.

Ich glaube, ich bin schon "einer" Lösung auf der Spur. Es sollte gehen, wenn man nicht zwei, sondern drei verschachtelte Schleifen nimmt, und man dann von jedem Schleifendurchlauf die Distanz zur Ebene berechnet. Wenn die Distanz in einem gewissen Toleranzbereich liegt (z.B. -1 <= Distanz <= 1), dann liegt der Punkt nah genug, um ihn zu zeichnen. Das versuche ich gerade umzusetzen (mir scheint diese Methode jedoch ziemlich "Brute Force" zu sein).
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

AW: Ebenengleichung darstellen (durch X mal Y Punkte)

  Alt 2. Feb 2011, 18:06
Ja, das kommt Brute-Force schon sehr nahe ^^

Vefahren:
Gegeben: Normalenvektor n und Abstand d

1. n mit einem beliebigen Vektor Kreuz-multiplizieren, der kein vielfaches von n ist. Also z.B. (1 0 0) oder wenn n gleich (1 0 0) ist (0 1 0)
nennen wir das Ergebnis a
2. b := n x a (Kreuzprodukt)

Jetzt hast du zwei Vektoren a und b die in der Ebene liegen. Mit der Gleichung

(x y z) = n * d + a*λ_1 + b*λ_2; λ_1 in R, λ_2 in R

werden alle Punkte der Ebene beschrieben.

Geändert von jfheins ( 3. Feb 2011 um 09:52 Uhr)
  Mit Zitat antworten Zitat
treeRunner

Registriert seit: 18. Jan 2011
5 Beiträge
 
#5

AW: Ebenengleichung darstellen (durch X mal Y Punkte)

  Alt 3. Feb 2011, 03:24
Vielen Dank! Das funktioniert perfekt.

Eine Anmerkung habe ich:
1. a := n x (0,0,1) // ein Vektor in der Ebene
2. b := n x a // ein anderer Vektor in der Ebene

Mit diesen zwei Schritten konnte ich es dann schon zeichnen.

Wofür braucht man jedoch noch Schritt 3? Ich habe mir die Vektoren mit OpenGL zeichnen lassen und der Vektor a aus Schritt Nr. 3 ist der Vektor a aus Schritt Nr. 1, nur dass er invertiert ist.

Viele Grüße,
treeRunner
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

AW: Ebenengleichung darstellen (durch X mal Y Punkte)

  Alt 3. Feb 2011, 09:54
Vielen Dank! Das funktioniert perfekt.
Wofür braucht man jedoch noch Schritt 3? Ich habe mir die Vektoren mit OpenGL zeichnen lassen und der Vektor a aus Schritt Nr. 3 ist der Vektor a aus Schritt Nr. 1, nur dass er invertiert ist.

Viele Grüße,
treeRunner
Schön dass es geht

Du hast, Recht, Schritt 3 war überflüssig. Habe meinen Post angepasst.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:02 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