Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Baryzentrische Koordinaten, Verhältnisse

Baryzentrische Koordinaten, Verhältnisse

Universität / Fachhochschule

Lineare Abbildungen

Tags: Lineare Abbildungen

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
mrHiggins

mrHiggins aktiv_icon

19:03 Uhr, 25.05.2010

Antworten
Ich hab ein ernstes Problem! Es geht um Shaderprogrammierung aber ich versuch mal das Problem in normaler Mathesprache darzustellen.

Ich habe ein Dreieck mit den Punkten a,b,c. Das Dreieck ist gleichschenklig. Wir benutzen DirectX und in dem speziellen Schritt wird jeder Pixel auf dem Bildschiem des Dreiecks über die 3 Punkte linear interpoliert. Sind 2 Punkte zb gelb und der dritte rot und ist der pixel genau in der Mitte des Dreiecks wird der Pixel grün, befindet sich der Pixel zwischen den beiden gelben Punkten auf der Kante, dann wird der Pixel gelb.

Leider geht bei dieser linearen Interpolation etwas verloren – und zwar die Position des Pixels im Dreieck! Ich weiß also nicht wo sich der Pixel befindet – und genau das muss ich wissen.

In unserem Fall geht es um Transparenz. Der Punkt a hat die Transparenz 1, die beiden Punkte b und c haben die Transparenz 0.

Ich muss aber den Abstand des Pixels zum Punkt a wissen. Hat die interpolation zb. 0,5 ergeben, dann kommen für den Abstand zum Punkt a viele Punkte – nämlich eine Gerade in Betracht. So wie oben: Ist der Punkt gelb, dann kommt die ganze Kante zwischen den gelben Punkten in Betracht.

Meine Idee ist jetzt folgende: Anstatt 1 Wert für die Transparenz (für die Punkte a,b,c wäre das 1,0,0) nehme ich 3. Und zwar 1,0,0 für den ersten Punkt, 0,1,0 für den zweiten und 0,0,1 für den dritten. Wenn er dann nach der interpolation für alle drei werte das selbe rausbekommt, weiß ich dass sich der Pixel genau in der Mitte des Dreiecks befindet und ich komme somit auf den Abstand d zum Punkt a.

Könnt ihr mir einen Tipp geben wie ich auf eine Funktion komme wie ich diese 3 interpolierten Werte in d umrechnen kann?

Es ist ein wenig so wie wenn ihr euch an drei Seilen an 3 Bäumen festbindet dass sie gespannt sind. Über das Verhältnis der Längen könnt ihr euch im Wald milimetergenau orten.


Nachschlag: Eine Skizze.
Ihr seht das Dreieck mit den Vektoren deren Elemente interpoliert werden. Für 0,25;0,5 und 0,75 hab ich mal Linien eingezeichnet.
Als Beispiel dient Punkt P. Der hat den Vektor 0,6;0,3;0,1. Ich weiß damit dass er auf 3 Geraden Parallel zu den Dreiecksseiten liegt. Aber ich will den Abstand d haben.

Und nochmal: ICH HABE KEINE KOORDINATEN! Es geht nur über das Verhältnis zb im Verhältnis zu der Dreiecksseite.

Natürlich ergibt die Addition der 3 Werte 1.
ABer für die Punkte Q1 und Q2 im Bild - also 0,5;0,5;0 und 0,4;0,3;0,3 muss nachher beide male d=0,5 rauskommen (als Abstand im Verhältnis zur Seite des Dreiecks)

problem

Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert):
"Ich benötige bitte nur das Ergebnis und keinen längeren Lösungsweg."
Online-Nachhilfe in Mathematik
Antwort
hagman

hagman aktiv_icon

22:51 Uhr, 25.05.2010

Antworten
(wieso ist eigentlich (gelb+rot)/2 = grün ?)

d=b2+bc+c2 klingt aus dem Bauch heraus passend
mrHiggins

mrHiggins aktiv_icon

22:55 Uhr, 25.05.2010

Antworten
was soll a,b und c sein?

Ich habe keine koordinaten....
ich habe lediglich die 3 werte die in der zeichnung orange, grün und braun sind, die zusammen 1 ergeben.

es geht nicht einfach ddurch so ne einfache gleichung


ich meinte blau sry.






ich glaube du hast das problem nicht ganz gelesen oder verstanden:-)
Antwort
hagman

hagman aktiv_icon

08:02 Uhr, 26.05.2010

Antworten
a= die rote Zahl
b= die grüne Zahl
c= die braune Zahl

Beispiel P:
a=0,6;b=0,3;c=0,1
dP=0,32+0,30,1+0,120,36055512754639892931

Beispiel Q1:
a=b=0,5;c=0
dQ1=0,52+0,50+02=0,5

Beispiel Q2:
a=b=c=13
dQ2=19+19+19=1330,57735026918962576451


Die einfache Gleichung haut also zumindest für diese Beispiele hin.
Und da das Abstandsquadrat eine quadratische Form in den baryzentrischen Koordinaten b,c sein muss und die angegebene die zum hexagonalen Gitter gehörige Form ist(bleibt invariant unter (b,c)(-c,b+c), der Rotation um A um 60°), stimmt die Formel allgemein.


EDIT: Oops, es scheint, dass Q2 gar nicht der Schwerpunkt des Dreiecks sein sollte, sondern der Punkt auf der Mittelachse mit Abstand 12 von A.
Q2 ist demnach gegeben durch b=c und b2+bc+c2=14, also b=c=1630,28867513459481288225 und a=1-b-c=1-1330,42264973081037423549
Beziehungsweise, wenn Q2 durch a=0,4 und b=c=0,3 gegeben ist, ergibt sich als Abstand 0,51961524227066318806
Frage beantwortet
mrHiggins

mrHiggins aktiv_icon

10:51 Uhr, 26.05.2010

Antworten
Ok - jetzt ist es klar.

Q2 sollte auch etwa 0,5 haben da es auf einem Kreis liegt mit Q1. Die Werte dafür hab ich mal aus der Zeichnung gelesen und so gewählt dass es zusammen 1 ergibt.

A kommt dann auf auf 0,B und C auf jeweils 1.


OK damit komm ich weiter. Vielendank!