Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-05-2005, 17:07   #1 (permalink)
*<):o)
 
Registriert seit: Mar 2003
Beiträge: 83
berecnung

hallo

ich stehe vor dem problem einer kollisionskontrolle. aber ich kann das nicht mit hittest() machen, denn ich muss es berechnen und dann hinterher wird gezeichnet oder mc kopiert und platziert.

mit der suche bin ich nicht weiter gekommen, denn da wird immer auf hittest sich bezogen.

die kollisionsabfrage zweier rechtecke ist kein problem:

ActionScript:
  1. function kollision(objekt1,objekt2){
  2.   if (objekt1.x > objekt2.x + objekt2.breite) return(false);
  3.   if (objekt1.y > objekt2.y + objekt2.hoehe) return(false);
  4.   if (objekt2.x > objekt1.x + objekt1.breite) return(false);
  5.   if (objekt2.y > objekt1.y + objekt1.hoehe) return(false);
  6.   return(true);
  7. }

...als beispiel.


aber was ist mit dreiecken (ich brauch blos rechtwinklige)? ich zerbreche mir den kopf aber ... ... ich komme nicht drauf.

mir würde ein denkanstoß schon reichen.

beispiele in anderen programmiersprachen sind mir auch recht.

gruss m1cha
__________________
looser@www:~> su -l
Password:
root:~ #
root:~ # chmod 777 WorldWideWeb
root:~ # logout
looser@www:~>

Optimismus ist ein Mangel an Information!

Geändert von m1cha (12-05-2005 um 17:39 Uhr)
m1cha ist offline   Mit Zitat antworten
Alt 12-05-2005, 18:02   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
für fortgeschrittene
[RigidBody Physics]


für anfänger
http://www.seibsprogrammladen.de/fra...ispiele/flash7
-> kreis_an_linie
flash6
Kreis berührt Linie

oder
http://www.seibsprogrammladen.de/fra...on/Mathe/flash
öffnen und aus "kreis durch 3 punkte" könnte man eventuell etwas machen?


davon mal abgesehen kannst du mit hittest sehr wohl eine kollision "punkt in (dreieck)kontur" testen.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (12-05-2005 um 18:05 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 12-05-2005, 18:21   #3 (permalink)
*<):o)
 
Registriert seit: Mar 2003
Beiträge: 83
dank an hgseib

ich werde mal schauen.

und das:
Zitat:
davon mal abgesehen kannst du mit hittest sehr wohl eine kollision "punkt in (dreieck)kontur" testen.
habe ich nicht angezweifelt, aber ich berechne alle koordinaten und dan zeichne ich halt die formen oder plaziere die mcs. oder wie meinst du das?

die werden nicht mehr bewegt, sondern es wird eine statische ausgabe, also muss ich vor dem darstellen berechnen, und dann das ergebniss anzeigen, und ausdrucken.

gruss micha
__________________
looser@www:~> su -l
Password:
root:~ #
root:~ # chmod 777 WorldWideWeb
root:~ # logout
looser@www:~>

Optimismus ist ein Mangel an Information!
m1cha ist offline   Mit Zitat antworten
Alt 12-05-2005, 22:42   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
hab gerade eine alte internetseite von mir ausgekramt. ging damals um cinema 4d (coffee) also 3D:
Eine Dreiecksfläche im Raum hat die Eckpunkte vFa, vFb und vFc.
Eine Linie im Raum hat die Eckpunkte vLa und vLb.
Gesucht ist der Durchdringungspunkt vP von der Linie durch die Fläche:

Drei Punkte im Raum (=zwei Vektoren) definieren eine Ebene. Das Kreuzprodukt (vcross) liefert einen Vektor, der senkrecht auf dieser Ebene liegt. Durch die Normalisierung (vnorm) wird der Vektor auf einen Radius von 1 skaliert. Denn es interessiert nur das Neigungsverhältnis.
Der Vektor von vLa zu vFa wird mit dem Kreuzprodukt der Fläche multipliziert. Das Ergebnis ist das Lot (die kürzeste Strecke) vom Punkt vLa auf die Ebene.
Der Vektor von vLa zu vLb wird ebenfalls mit dem Kreuzprodukt der Fläche multipliziert. Also eine Linie von vLa zu vLb, senkrecht zur Dreiecksfläche projeziert. Mit dem selben Teilungsverhältnis dieser beiden Vektoren wird die Linie vLa zu vLb geteilt, um den gesuchten Punkt vP zu erhalten.

Zur Feststellung, ob der ermittelte Punkt vP sich innerhalb oder außerhalb der Dreiecksfläche befindet dient wieder das Kreuzprodukt. Es wird gebildet mit den Dreiecken:
vFa,vFb,vP
vFb,vFc,vP
vFc,vFa,vP
Liegt der Punkt vP innerhalb, dann zeigen alle drei Kreuzprodukte in die gleiche Richtung, andernfalls zeigt ein Kreuzprodukt in die entgegengesetzte Richtung.

letzteres "platt"-gedrückt und in AS übersetzt: anhang
Angehängte Dateien
Dateityp: zip punkt_in_dreieck.zip (7,1 KB, 17x aufgerufen)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (12-05-2005 um 23:33 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 14-05-2005, 15:26   #5 (permalink)
*<):o)
 
Registriert seit: Mar 2003
Beiträge: 83
besten dank hgseib

das ist genau was ich suche. die ersten links waren nicht ganz so was ich meinte.

alte internetseite ???

gruss m1cha
__________________
looser@www:~> su -l
Password:
root:~ #
root:~ # chmod 777 WorldWideWeb
root:~ # logout
looser@www:~>

Optimismus ist ein Mangel an Information!
m1cha ist offline   Mit Zitat antworten
Alt 14-05-2005, 16:03   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
"..nicht ganz so was ich meinte.."
keine fix und fertigen lösungen. aber da sind techniken und ansätze zu lesen um das problem anzugehen.
z.b. "kreis_an_linie" was ist denn kreismittelpunkt und die zwei enden einer linie? ein dreieck - juchhuu

"..alte internetseite ???.."
??? also von heute morgen sind die nicht - aber alt ???
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (14-05-2005 um 16:05 Uhr)
hgseib ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele