Punkte "im" (eigentlich "über") einem Dreieck

08/06/2010 - 17:34 von Valerian | Report spam
Hallo allerseits,

ich bin Hobbyprogrammierer und bastele gerade an einem Steuerfeld für
einen Programmdialog, in dem der Benutzer einen vorgegebenen Wert auf
drei Bereiche aufteilen soll.

Die Aufteilung auf nur ZWEI Bereiche ist ja vergleichsweise simpel:
Hierbei würde ein Schieberegler reichen. Jede Position des
Schiebereglers stellt eine mögliche Verteilung da (ganz links heisst
z. B. 100% Wert A, 0% Wert B, Mitte heisst 50% Wert A, 50% Wert B,
ganz rechts ist dann 0% Wert A, 100% Wert B). Hier springt dem
Benutzer die aktuelle Einstellung größenordnungsmàßig direkt ins Auge.

Dieses Konzept wollte ich auf drei Bereiche ausdehnen und nahm mir
hierzu ein gleichseitiges Dreieck zur Hand. Jeder Punkt innerhalb des
Dreiecks hat ja verschiedene Abstànde von den drei Ecken. Der Gedanke
war, dass man auf diese Weise eine Verteilung sichtbar machen und dem
Benutzer einsichtige Änderungsmöglichkleiten an der Verteilung geben
kann.

Der erste naive Ansatz war, dass die Summe der Abstànde eines
beliebigen Punktes im Dreieck zu den drei Ecken als Summe unabhàngig
von der Wahl des Punktes konstant sein könnte und man daher die
Anteile jeweils direkt aus den Abstànden ablesen könnte. Das
funktioniert aber nicht, da die Summe eben nicht konstant ist.

Der Einfachheit halber nehme ich eine Dreiecks-Seitenlànge von 1 an.
Gegeben sei also ein gleichseitiges Dreieck ABC mit einem Punkt M
innerhalb des Dreiecks.

Schon bei Betrachtung der beiden Extremfàlle (M genau auf einem der
Eckpunkte; Summe der Strecken AM, BM und CM ist dann gleich 0 + 1 + 1
= 2; sowie M genau in der Mitte des Dreiecks, wo sich die
Seitenhalbierenden im Verhàltnis 2:1 schneiden: AM + BM + CM = 3* (1/3
* Wurzel(3)) = Wurzel (3)) fàllt auf, dass hier nicht immer die
gleiche Summe entsteht und somit die Abstànde eines Punktes zu den
Eckpunkten nicht linear in Prozentwerte umgerechnet werden können.

Bei nàherer Betrachtung erscheint dies logisch. Alle Punkte, die in
einer Ebene von zwei Punkten aus den gleichen Summenabstand haben,
stellen eine Ellipse dar. Demzufolge steht zu erwarten, dass alle
Punkte, die von DREI Punkten aus den gleichen Summenabstand haben,
höchstwahrscheinlich irgendeinen abgerundeten Körper ergeben werden
(so ein Ding heisst glaube ich Ellipsoid).

Also: Alle Punkte, die von meinen drei Dreiecks-Ecken den gleichen
Summenabstand haben, liegen vermutlich auf einer Art "Wölbung" über
meinem Dreieck. Da es sich aber um eine echt konvexe Wölbung handeln
dürfte, sollte es zu jedem Punkt im Dreieck einen eindeutig bestimmten
Punkt auf der Wölbung geben, der exakt "über" dem Punkt im Dreieck
liegt (also wenn das Dreieck in der x/y-Ebene liegt, dieselben x- und
y-Koordinaten hat) Aus den Abstànden dieses Wölbungspunktes von meinen
Dreiecks-Ecken könnte ich dann die gewünschte Verteilung ablesen.

Nur: Um die Höhe des Punktes auf der Wölbung über einem gewàhlten
Punkt in meinem Dreieck auszurechnen, reicht meine Schulmathematik
oder mein Ideenreichtum leider nicht mehr aus. Ich bleibe immer in
verschiedenen Cosinussatz-Formeln hàngen.

Zusammengefasst: Mein Dialogelement könnte vermutlich funktionieren,
stellt dann aber quasi eine plattgequetsche Version der eigentlichen
Eingabewölbung dar und bildet daher nicht linear ab.

Meine beiden Fragen an Euch:
(1) Kann mir jemand sagen, wie ich aus einem Punkt *im* Dreieck den
Punkt auf der Wölbung darüber berechnen kann (also sozusagen die Höhe
der Wölbung)?
(2) Erscheint Euch so ein Eingabefeld überhaupt verstàndlich, wenn die
Reglerposition im Dreieck gar nicht echt linear Auswirkungen auf die
Werte hat? Sollte man ggfs. eine völlig andere Weise der Darstellung
wàhlen?

Ganz lieben Dank für Eure Zeit und jeden Hinweis!

Valerian
 

Lesen sie die antworten

#1 Leonhard Witt
08/06/2010 - 17:50 | Warnen spam
Valerian wrote:
Hallo allerseits,

ich bin Hobbyprogrammierer und bastele gerade an einem Steuerfeld für
einen Programmdialog, in dem der Benutzer einen vorgegebenen Wert auf
drei Bereiche aufteilen soll.

Die Aufteilung auf nur ZWEI Bereiche ist ja vergleichsweise simpel:
Hierbei würde ein Schieberegler reichen. Jede Position des
Schiebereglers stellt eine mögliche Verteilung da (ganz links heisst
z. B. 100% Wert A, 0% Wert B, Mitte heisst 50% Wert A, 50% Wert B,
ganz rechts ist dann 0% Wert A, 100% Wert B). Hier springt dem
Benutzer die aktuelle Einstellung größenordnungsmàßig direkt ins Auge.

Dieses Konzept wollte ich auf drei Bereiche ausdehnen und nahm mir
hierzu ein gleichseitiges Dreieck zur Hand. Jeder Punkt innerhalb des
Dreiecks hat ja verschiedene Abstànde von den drei Ecken. Der Gedanke
war, dass man auf diese Weise eine Verteilung sichtbar machen und dem
Benutzer einsichtige Änderungsmöglichkleiten an der Verteilung geben
kann.

Der erste naive Ansatz war, dass die Summe der Abstànde eines
beliebigen Punktes im Dreieck zu den drei Ecken als Summe unabhàngig
von der Wahl des Punktes konstant sein könnte und man daher die
Anteile jeweils direkt aus den Abstànden ablesen könnte. Das
funktioniert aber nicht, da die Summe eben nicht konstant ist.

Der Einfachheit halber nehme ich eine Dreiecks-Seitenlànge von 1 an.
Gegeben sei also ein gleichseitiges Dreieck ABC mit einem Punkt M
innerhalb des Dreiecks.

Schon bei Betrachtung der beiden Extremfàlle (M genau auf einem der
Eckpunkte; Summe der Strecken AM, BM und CM ist dann gleich 0 + 1 + 1
= 2; sowie M genau in der Mitte des Dreiecks, wo sich die
Seitenhalbierenden im Verhàltnis 2:1 schneiden: AM + BM + CM = 3* (1/3
* Wurzel(3)) = Wurzel (3)) fàllt auf, dass hier nicht immer die
gleiche Summe entsteht und somit die Abstànde eines Punktes zu den
Eckpunkten nicht linear in Prozentwerte umgerechnet werden können.

Bei nàherer Betrachtung erscheint dies logisch. Alle Punkte, die in
einer Ebene von zwei Punkten aus den gleichen Summenabstand haben,
stellen eine Ellipse dar. Demzufolge steht zu erwarten, dass alle
Punkte, die von DREI Punkten aus den gleichen Summenabstand haben,
höchstwahrscheinlich irgendeinen abgerundeten Körper ergeben werden
(so ein Ding heisst glaube ich Ellipsoid).

Also: Alle Punkte, die von meinen drei Dreiecks-Ecken den gleichen
Summenabstand haben, liegen vermutlich auf einer Art "Wölbung" über
meinem Dreieck. Da es sich aber um eine echt konvexe Wölbung handeln
dürfte, sollte es zu jedem Punkt im Dreieck einen eindeutig bestimmten
Punkt auf der Wölbung geben, der exakt "über" dem Punkt im Dreieck
liegt (also wenn das Dreieck in der x/y-Ebene liegt, dieselben x- und
y-Koordinaten hat) Aus den Abstànden dieses Wölbungspunktes von meinen
Dreiecks-Ecken könnte ich dann die gewünschte Verteilung ablesen.

Nur: Um die Höhe des Punktes auf der Wölbung über einem gewàhlten
Punkt in meinem Dreieck auszurechnen, reicht meine Schulmathematik
oder mein Ideenreichtum leider nicht mehr aus. Ich bleibe immer in
verschiedenen Cosinussatz-Formeln hàngen.

Zusammengefasst: Mein Dialogelement könnte vermutlich funktionieren,
stellt dann aber quasi eine plattgequetsche Version der eigentlichen
Eingabewölbung dar und bildet daher nicht linear ab.

Meine beiden Fragen an Euch:
(1) Kann mir jemand sagen, wie ich aus einem Punkt *im* Dreieck den
Punkt auf der Wölbung darüber berechnen kann (also sozusagen die Höhe
der Wölbung)?
(2) Erscheint Euch so ein Eingabefeld überhaupt verstàndlich, wenn die
Reglerposition im Dreieck gar nicht echt linear Auswirkungen auf die
Werte hat? Sollte man ggfs. eine völlig andere Weise der Darstellung
wàhlen?


Was Du suchst, ist eine Konvexkombination von drei Punkten P1, P2, P3.
Die Linearkombinationen
a*P1 + b*P2 + c*P3
wobei a, b und c nicht negativ sind sowie a+b+c = 1 ist, bilden genau
das Innere und den Rand des von P1, P2 und P3 gebildeten Dreiecks.
Setze der Bequemlichkeit halber P1 = (0,0), wàhle P2 und P3 beliebig
(aber natürlich nicht auf einer Geraden). Dann kannst Du zu jedem Punkt
P des Dreiecks aus der Gleichung
b*P2 + c*P3 = P
die Koeffizienten b und c bestimmen. a ist dann 1-b-c.
Damit hast Du Deine Aufteilung.

llap, Leo

Ähnliche fragen