Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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

Sehr gut, danke! Wie macht man das denn beim Kreis?

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

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

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.