AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Kollision zweier Ellipsen?

Ein Thema von igel457 · begonnen am 9. Jun 2007 · letzter Beitrag vom 9. Jun 2007
Antwort Antwort
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#1

Kollision zweier Ellipsen?

  Alt 9. Jun 2007, 17:39
Hallo,

ich möchte überprüfen, ob zwei Ellipsen miteinander kollidieren. Für Kugeln geht das ja ganz einfach:
collide := sqr(m1.x-m2.x)+sqr(m1.y-m2.x) <= sqr(r1 + r2); Aber wie geht das für Ellipsen? Meine Überlegung ist die Ellipsen praktisch wieder zu Kugeln zurückzustrecken - da die Ellipsen aber mit verschiedenen Seitenverhältnisen sein können, haut das, was bei "Punkt in Ellipse" noch wunderbar klappt, nicht so richtig hin. Hat jemand eine Idee?

Danke,
Igel457
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Kollision zweier Ellipsen?

  Alt 9. Jun 2007, 18:03
Kevin Lindsey hat dazu auf seiner Website eine Riesensammlung an Geometriefunktionen - leider zwar nur in Java, aber die Umsetzung dürfte sich vom Aufwand her sicherlich in Grenzen halten Lohnt sich bestimmt, nen Blick reinzuwerfen.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Kollision zweier Ellipsen?

  Alt 9. Jun 2007, 19:42
Erstmal vielen dank für den Link.
Das scheint aber durchaus ein wenig komplizierter zu sein - Ich denke, dass ich einfach mit einigen Punkten der Außenlinie überprüfe, ob eine Kollision stattfindet - das ist zwar nich so akkurat, aber für meine Spriteengine sollte es allemals reichen. Wenn jemand aber noch eine einfache (sprich nicht unbedingt mehr als 30 Zeilen) Lösung hat, die auch noch schnell funktioniert, bin ich für diese natürlich nach wie vor offen .

Nochmal Danke für die Hilfe,
igel457
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Kollision zweier Ellipsen?

  Alt 9. Jun 2007, 20:03
Hallo Andreas,

du könntest noch den Weg über das WinAPI gehen. Zunächst mit MSDN-Library durchsuchenCreateEllipticRgn oder MSDN-Library durchsuchenCreateEllipticRgnIndirect zwei Regionen für die Ellipsen erstellen und anschließend mit MSDN-Library durchsuchenCombineRgn und dem Modus RGN_AND den Durchschnitt beider Regionen ermitteln. Ob dies für deine Engine schnell genug ist, vermag ich allerdings nicht zu sagen.

Gruß Hawkeye
  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 11:49 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