cybton.com
Über uns | Jobs | Werbung | Sitemap | AGB | Impressum | Hilfe ?
 Kostenlos anmelden)
Forum
Aktuellste Beiträge
Forenregeln

Community
BB-Codes
Tags
Chat
Suche (Web)
Wer ist online?
Top-User

Basar


Statistik
Mitglieder gesamt: 68138
Mitglieder online: 8
Gäste online: 7
mehr...

Anzeige
Forum » Forum: Website & Webprogrammierung » Thread: JS: Brauche komplizierte math. Flächenberechnung

Thread: JS: Brauche komplizierte math. Flächenberechnung

Seite 1 von 212

15.05.2008 09:51 Uhr

 

Status: offline
Guten Tag zusammen!

Ich baue ja, falls ihr dass wisst, schon länger ein Game, was auf Javascript basiert. Es ist ein 2D-Western-Abenteuer.

Stellt euch vor ihr habt eine Spielfigut, ihre Position liegt auf Coordinaten, okay bis hierhin ist ja alles klar.

Es gibt in der Spielwelt Bounds, Grenzen an der die Spielfigur nicht weitergehen kann. Diese Bounds kann ich entweder als Linien machen oder als Dreiecke, letzteres wäre demnach eine Fläche.

Wie kann ich nun math. bestimmen, wenn der Mauszeiger über so eine Fläche kommt, und seine Koordinaten sich stets mit jeder Bewegung verändern, ob er jetzt über der Fläche ist oder nicht.

Also nochmal anders ausgedrückt:
Der Mauzeiger hat Koordinaten, klar.
Meine Fläche hat drei Eckpunkte, auch Koordinaten.

Wie krieg ich das math. heraus, ob die Koordinaten vom Mauszeiger gerade innerhalb der Fläche sind oder außerhalb.

Überfährt man die Fläche mit der Maus, verwandelt sich diese automatisch in ein Kreuz und die Spielfigur kann sich nicht dorthinbewegen, dafür zB. Oder für Felder mit bestimmten Untergrund wäre das sicherlich von Vorteil.

Das ganze wird wie gesagt in Javascript inteplementiert.

Hat da jemand von euch schon eine Ahnung, wie ich das am besten und prozessorschonendsten(!) machen könnte.

// Edit by bmk: Titel und Tags getauscht.
1 mal bearbeitet
15.05.2008 09:56 Uhr

 

bmk
Moderator
Status: offline
Bei Dreiecken ist das echt nicht einfach. Wie liegen die Dreiecke denn im Raum? Irgendwie, oder sind das zB gleichschenkelige Dreiecke, deren Basis horizontal verläuft?

Edit: Hier findest du den allgemeinen Ansatz:
http://www.uni-protokolle.de/foren/viewt/92618,0.html

Sieht komplizierter aus, als es ist. Wenn es sich bei dir um ein spezielles Dreieck handelt, sollte sich da sicher eine brauchbare Formel daraus entwickeln lassen. Have phun...
1 mal bearbeitet
___________________________
Let's code responsibly...
Webcrawler -- Portal für Dirigenten -- Musikverein Königstetten
15.05.2008 10:10 Uhr

 

Status: offline
Wie wäre es mit ein bissel Vektorrechnung. Einfach die Koordinaten in die Ebenengleichung einsetzen und schon weißt du, ob der Punkt in der Ebene liegt.
http://www.rither.de/a/mathematik/lineare-algebra-und-analytische-geometrie/ebenen ... ner-ebene/

Dann müsstest du nur noch die Ebenenparameter testen, ob der Punkt nicht nur in der Ebene liegt sondern auch in der Fläche.

Suchbegriffe für Google:
  • Vektoren
  • Ebenengleichung
___________________________
im Urlaub...
<?php open_brain($user); ?> FATAL ERROR!!!
Ich bin zurück!!! =>http://www.wieschoo.com
15.05.2008 10:54 Uhr

 

Status: offline
Hallo und Danke für die Links!

Die Dreiecke besitzten keine Z-Ebende und sind alle unterschiedlich, sie setzten sich aus 3 X-Koordinaten und den 3 dazugehörigen Y-Koordinaten. Die Winkel darin sind von daher immer verschieden und werden bei der Berechnung nicht berücksichtigt.

Ja Vektorrechung, genau das ist das!
1 mal bearbeitet
15.05.2008 11:08 Uhr

 

Status: offline
Ist doch rille, ob die Dreiecke im Raum oder sich auf der x- y Ebene befinden. Dann ist halt die Z-Koordinate überall gleich. In der Koordinatengleichung würde dann das Z wegfallen.
___________________________
im Urlaub...
<?php open_brain($user); ?> FATAL ERROR!!!
Ich bin zurück!!! =>http://www.wieschoo.com
15.05.2008 11:22 Uhr

 

bmk
Moderator
Status: offline
@wieschoo: Natürlich fiele das dann weg. Aber das ist ja das, was ich gemeint habe: Wenn schon von Anfang an bekannt wäre, dass das wegfallen wird, bräuchte man es von vorn herein erst gar nicht in die Rechnung mit aufnehmen. Bei einer Berechnung, die bei jeder Mausbewegung ständig ausgeführt werden soll, macht das schon nen Unterschied... ;-)
___________________________
Let's code responsibly...
Webcrawler -- Portal für Dirigenten -- Musikverein Königstetten
15.05.2008 11:27 Uhr

 

Status: offline
Zitat:
Bei einer Berechnung, die bei jeder Mausbewegung ständig ausgeführt werden soll, macht das schon nen Unterschied... ;-)
Is ja nicht mein Problem  :lol: 

Da sowieso alles über Javascript läuft, ist es nur Clientseitig. Somit hält sich eine Belastung in Grenzen. Ich wüde die Map sowieso rastern. Mann muss ja nicht jeden Pixel einzeln überprüfen. Oder hab ich schlechte Augen?
___________________________
im Urlaub...
<?php open_brain($user); ?> FATAL ERROR!!!
Ich bin zurück!!! =>http://www.wieschoo.com
15.05.2008 11:51 Uhr

 

bmk
Moderator
Status: offline
Naja, auch die Clients (besser gesagt: die Browser mit ihrer miesen Javascript-Performance) haben da schon ihre (engen) Grenzen.
Und gerade bei einem Browsergame, wo sich viel in JS abspielt, muss man auf sowas auf jeden Fall auch achten. Und bei einer Core-Loop sowieso.
___________________________
Let's code responsibly...
Webcrawler -- Portal für Dirigenten -- Musikverein Königstetten
15.05.2008 12:35 Uhr

 

Status: offline
Hallo nochmal,

die Z-Ebene fällt komplett weg und wird auch in keiner Berechnung Erwähnung finden.

Das Spiel selbst wird natürlich Clientseitig sein. Ein lokaler Socketserver wird alles managen, zur HTML-Darstellung wird MSHTA verwendet.

Und apropo Rasterung, an sowas hatte ich auch schon gedacht. Was wäre, wenn der Prozessor pro Durchgang nicht jedes einzelne Pixel, sondern gleich 5 als Eins berechnen würde? Er wäre deutlich schneller und die Spielequalität wäre auch noch ertragbar. Dazu wollte ich in der Verwaltung einen Schieberegler zur Verfügung stellen, bei dem sich jeder die Raster-Schwelle selbst einstellen kann.

Dazu soll eben auch eine Funktion deklariert werden:

function _ON_FLAT(xc, yc, x1, y1, x2, y2, x3, y3)
{
// Code ...

return true;

// oder

return false;
}
2 mal bearbeitet
15.05.2008 13:16 Uhr

 

Status: offline
Hier gehts dann schon ans Eingemachte...

http://forum.fachinformatiker.de/algorithmik/115549-punkt-dreieck-3d.html

Mal schauen, was die herausgefunden haben.

Edit:

Hier gibts bereits die Lösung!!! Unten das Dreieck, das ja genau das solls sein!
http://www.blackpawn.com/texts/pointinpoly/default.html
2 mal bearbeitet
Seite 1 von 212
Ähnliche Threads Forum Ähnlichkeitsgrad
 Mikronation: Königreich Pektonien Das Promotion-Board 2
 Formular Spiel (mit Javascript) Website & Webprogrammierung 2
 Dateicontainer für HTML-Games-Server Softwareprogrammierung 2
 Kleines Javascript-Problem mit Menü Website & Webprogrammierung 2
 aufklappbares menü macht probleme Website & Webprogrammierung 2
 Mathematische Funktion für PHP aufbereiten Website & Webprogrammierung 2
 [gelöst] Mit Javascript automatisch in den Vollbildmodus wechseln - 200 cyDots Website & Webprogrammierung 1
Passende eBook-Abschnitte eBook Ähnlichkeitsgrad
Textabsätze XHTML 1
nach obennach oben

Copyright © 2008 cybton-network

Google
Partner: #Musik - Dein Internetradio - nexem. - .wir machen news - Your-Book.net - Dein kostenloses Gästebuch
ANEXIA - PHP Entwicklung - Dockers - s.Oliver Schuhe - Think Schuhe - der eigene Weg - Dorfen - Paul Green Schuhe - Bequeme Geox - Web-Entwicklung