Zum Inhalt springen

Verbindung zwischen Grafikelementen


Empfohlene Beiträge

Guten Tag,

ich grübel, wie man im zweidimensionalen zwei bestimmte Punkte verbindet. Diese Punkte liegen auf dem Rand verschiedener geometrischer Figuten(Kreis, Rechteck, Raute), die über ihre Größenangaben(width, height) begrenzt werden. Diese Figuren sind eigentlich über ihre Mittelpunkte mit einer Linie miteinander verbunden, jedoch soll nur der Teil der Verbindung grafisch angezeigt werden, der außerhalb der Ränder der beiden Figuren liegt.

Ich müsste also das Wertepaar (x,y) berechnen, das den Schnittpunkt der Geraden von Mittelpunkt zu Mittelpunkt und dem Rand der geometrischen Figur darstellt. Hat jemand eine Idee?

viele Grüße

franz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du kannst das ganze über einfache Vektoroperationen lösen:

Dein Mittelpunkt einer Figur ist der Ortsvektor, die Verbindungslinie vom Mittelpunkt zu einem anderen Mittelpunkt einer anderen Figur ist der Richtungsvektor. Eine Ecke ist ebenfalls ein Ortsvektor und eine Seite ein Richtungsvektor. Du hast damit 2 Geradengleichungen der Form:

g1: a + u*b und g2: c+ v*d. Das LGS was sich daraus ergibt lässt sich widerspruchsfrei lösen, wenn ein Schnittpunkt existiert.

Bei komplexeren Figuren ist es ähnlich. Algorithmen auch für 3D sind in der Literatur über Computergraphik zu finden

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Als Literatur empfehle ich: Fundamentals of Computer Graphics: Peter Shirley: Amazon.de: Englische Bücher

Du hast einen (Orts)Vektor P der außerhalb des Kreises liegt, den Mittelpunkt des Kreises M und den (Vektor)Strahl S der von Punkt P aus in eine beliebige Richtung läuft. Die Strecke P M, der Radius des Kreises und der Vektor S bilden ein Dreieck, wobei der Schnittpunkt genau an dem Punkt liegt, wo sich S und Radius treffen.

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Phil,

ich hätte noch eine Frage zu den Richtungs/Ortsvektoren bei den Rechtecken:

wie bestimmt man mathematisch die passende Ecke(Ortsvektor) und den dazugehörigen Richtungsvektor?

Man muss ja relativ zu dem zu verbindenden Objekt die richtige Ecke wählen, von wo es dann ja auch noch 2 mögliche Richtungsvektoren gibt.

Das Buch scheint echt gut zu sein, vielleicht kann ich mir das demnächst irgendwo ausleihen. Stehen da zufällig auch die Algorithmen für mein Problem drin oder weißt du, wo man sowas herbekommen könnte?

Versuche zwar das gerade zu programmieren, aber ich bin nicht so fit in der ganzen Grafikprogrammierung und von daher dauert alles auch echt ewig - mal ganz davon abgesehen ob es jemals so laufen wird, wie ich es mir vorstelle.

grüße

franz

Link zu diesem Kommentar
Auf anderen Seiten teilen

wie bestimmt man mathematisch die passende Ecke(Ortsvektor) und den dazugehörigen Richtungsvektor?

Man muss ja relativ zu dem zu verbindenden Objekt die richtige Ecke wählen, von wo es dann ja auch noch 2 mögliche Richtungsvektoren gibt.

DU kannst sie durchprobieren. Bei wenigen Objekten ist das durchaus so realisierbar. Dir ist ja jeder Mittelpunkt des Objektes bekannt und der Mittelpunkt, das zu dem zu berechnen willst. Ansonsten würde ich Dir empfehlen zu komplexeren Datenstrukturen um zu steigen wie z.B. BV, Octree oder Kd-Tree um Schnitte mit Objekten zu berechnen.

Das Buch scheint echt gut zu sein, vielleicht kann ich mir das demnächst irgendwo ausleihen. Stehen da zufällig auch die Algorithmen für mein Problem drin oder weißt du, wo man sowas herbekommen könnte?

Nein, das Buch ist ein Grundlagenbuch über Algorithmen der Computergraphik. Algorithmen findest Du in diesem Buch inkl Erklärung Numerical Recipes with Source Code CD-ROM: The Art of Scientific Computing: William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery: Amazon.de: Englische Bücher das aber auch online verfügbar ist

Der Ansatz über ein LGS lässt sich noch anschaulich im R^2 beschreiben und ist eben ein naiver Ansatz. Bei komplexeren Strukturen bzw mehr Daten musst Du entsprechenden Algorithmen verwenden

Phil

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...