.
|
|
| Autor | Beitrag |
|---|---|
|
000 08.09.2002, 18:38 gerk |
Morgen wieder einmal! Ich habe ein Problem: Das sollte man mit dem DotProduct - wenn ich mich in meinen mangelnden Mathematikkenntnissen nicht irre - berechnen können. Da es mir aber wie bereits erwähnt an mathematischem Grundwissen hier mangelt (besonders im Bereich Vektoren bin ich noch ziemlich grün), brauche ich eure Hilfe. 1)Bitte ertränkt mich nicht in einem Fluss von Formeln, die ein Durschnittsmensch wie ich sowieso nicht nachvollziehen kann :) 2)Bitte schlagt mich nicht für das Unwissen, denn mein gesamtes Vektoralgebra-Wissen beruht auf meinen autodidaktischen Versuchen, mir anhand von Tutorials etwas beizubringen. Vielen Dank im Voraus, „Und da wir uns ja seit heute etwas näher gekommen sind, kann ich nur sagen: Mir hilft da immer Norther volle Lautstärke (so wie jetzt), sodass die ganzen unrasierten, Wasserpfeife rauchenden, alternativen Wichsstudenten aus ihren, aus Bananenschalen und Abfall gebastelten, Sitzkissen fliegen.“ Dieser Beitrag wurde am 08.09.2002 um 18:39 von Lag of death bearbeitet. |
|
Profil || Suche |
|
001 08.09.2002, 21:18 Cuthbert |
Hi, findet das ganze auf 2-dimensionaler ebene statt? würde das ganze vereinfachen. Der Player udn der NPc brauchen jeweils einen vektor als blickrichtung. mfg cuthbert p.s. die formel steht im TW. müste mal nachschauen. --Die Singlein vögeln und asten von Hupf zu Hupf. |
|
Profil || Suche |
|
002 09.09.2002, 00:27 Tron |
sehr simpel: daraus berechnest du das punktprodukt (jeweils paarweise die komponenten der vektoren multiplizieren und zusammenaddieren, also x1 * x2 + y1 * y2 + z1 * z2) ist das ergebnis negativ steht der spieler im halbkreis hinter dem npc. ein paar kenntnisse von vektoren sind UNABDINGBAR fuer spieleprogrammierung (naja... zumindest fuer die meisten spiele) 'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
003 09.09.2002, 20:06 gerk |
darf ich fragen, wie das mit dem halbkreis gemeint ist? oder hab ich das missverstanden. @cuthbert: es spielt sich im 3dimensionalen raum ab. --„Und da wir uns ja seit heute etwas näher gekommen sind, kann ich nur sagen: Mir hilft da immer Norther volle Lautstärke (so wie jetzt), sodass die ganzen unrasierten, Wasserpfeife rauchenden, alternativen Wichsstudenten aus ihren, aus Bananenschalen und Abfall gebastelten, Sitzkissen fliegen.“ |
|
Profil || Suche |
|
004 10.09.2002, 19:51 apfelkorn |
das ist von 90° bis 270° vom blickwinkel aus -- |
|
Profil || Suche |
|
005 10.09.2002, 20:18 gerk |
wessen blickwinkel? vom npc, vom arsch des npc's oder meines? bitte nich haun.. thx schon mal. --„Und da wir uns ja seit heute etwas näher gekommen sind, kann ich nur sagen: Mir hilft da immer Norther volle Lautstärke (so wie jetzt), sodass die ganzen unrasierten, Wasserpfeife rauchenden, alternativen Wichsstudenten aus ihren, aus Bananenschalen und Abfall gebastelten, Sitzkissen fliegen.“ |
|
Profil || Suche |
|
006 10.09.2002, 21:10 [RMen]OneStone |
NPC Blickwinkel --georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/ |
|
Profil || Suche |
|
007 11.09.2002, 09:11 gerk |
ahh *einlichtaufgeht* 90 - 270° jetzt versteh ichs. ich dachte die ganze zeit ok mal (pseudo) c-scriptcode: so ungefähr? --„Und da wir uns ja seit heute etwas näher gekommen sind, kann ich nur sagen: Mir hilft da immer Norther volle Lautstärke (so wie jetzt), sodass die ganzen unrasierten, Wasserpfeife rauchenden, alternativen Wichsstudenten aus ihren, aus Bananenschalen und Abfall gebastelten, Sitzkissen fliegen.“ |
|
Profil || Suche |
|
008 11.09.2002, 09:59 Tron |
so ungefaehr....
btw: wenn du nicht 180° sondern weniger (z.b. nur direkt dahinter +-30°) als hinten bewerten willst, wird es etwas komplizierter, oder ist 180° das was du willst? --'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
009 11.09.2002, 10:19 gerk |
nein 180° ist gut. es geht nur darum, die schmerzen/sterbe-anims korrekt abzuspielen, dass zb der npc nicht nach hinten fällt, wenn ihn ein kopfschuss von hinten killt.
natürlich vertippt :) --„Und da wir uns ja seit heute etwas näher gekommen sind, kann ich nur sagen: Mir hilft da immer Norther volle Lautstärke (so wie jetzt), sodass die ganzen unrasierten, Wasserpfeife rauchenden, alternativen Wichsstudenten aus ihren, aus Bananenschalen und Abfall gebastelten, Sitzkissen fliegen.“ |
|
Profil || Suche |
|
010 11.09.2002, 14:33 Prefect |
Sooo kompliziert ist es auch wieder nicht. Wenn du genaue Winkelangaben haben willst mußt du die beiden Vektoren, von denen du den eingeschlossenen Winkel haben willst (in dem Fall halt Sichtvektor und Verbindungsvektor zum Spieler) normalisieren, d.h. auf die Länge 1 bringen, indem du einfach beide Vektoren durch ihre jeweilige Länge teilst. Dann ist das Dotproduct der Cosinus des Winkels. cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
011 12.09.2002, 12:35 gerk |
aha. und was ist dann der "eingeschlossene winkel"? bzw. wie errechne ich den? --„Und da wir uns ja seit heute etwas näher gekommen sind, kann ich nur sagen: Mir hilft da immer Norther volle Lautstärke (so wie jetzt), sodass die ganzen unrasierten, Wasserpfeife rauchenden, alternativen Wichsstudenten aus ihren, aus Bananenschalen und Abfall gebastelten, Sitzkissen fliegen.“ Dieser Beitrag wurde am 12.09.2002 um 12:35 von Lag of death bearbeitet. |
|
Profil || Suche |
|
012 12.09.2002, 17:34 Cuthbert |
den winkel berechnest du mit: du hast v1 und v2 als vektoren das andere ist der betrag der winkel, d.h. alle komponenten qaudrieren und dann aus der summe die wurzel ziehen. fertig. lecker. |v1|=sqrt(x*x+y*y+z*z); in jeder programmiersprache gibt es eine arccos funktion mit der dann der winkel berechnet wird. mfg cuthbert --Die Singlein vögeln und asten von Hupf zu Hupf. |
|
Profil || Suche |
|
013 12.09.2002, 19:30 gerk |
aha. gut das werd ich gleich morgen versuchen. ich bin jetzt einfach zu müde, da ich erst um 5 von der schule heimgekommen bin. wenn ich aber den sichtwinkel des npcs in nen vektor umwandeln kann, sollte alles in butter sein. danke erst mal. --„Und da wir uns ja seit heute etwas näher gekommen sind, kann ich nur sagen: Mir hilft da immer Norther volle Lautstärke (so wie jetzt), sodass die ganzen unrasierten, Wasserpfeife rauchenden, alternativen Wichsstudenten aus ihren, aus Bananenschalen und Abfall gebastelten, Sitzkissen fliegen.“ |
|
Profil || Suche |
|
014 12.09.2002, 21:27 theDon |
öhm \o tanz den naziprau! o/ And more than ever, I hope to never fall, |
|
Profil || Suche |
|
015 13.09.2002, 20:39 gerk |
das ist (zumindest für mich) unleserlich. mal abgesehen davon, dass ich den trinären operator nicht mag. da ziehe ich leserlichkeit und übersichtlichkeit kürze und geschwindigkeit(?) vor. --„Und da wir uns ja seit heute etwas näher gekommen sind, kann ich nur sagen: Mir hilft da immer Norther volle Lautstärke (so wie jetzt), sodass die ganzen unrasierten, Wasserpfeife rauchenden, alternativen Wichsstudenten aus ihren, aus Bananenschalen und Abfall gebastelten, Sitzkissen fliegen.“ Dieser Beitrag wurde am 13.09.2002 um 20:41 von Lag of death bearbeitet. |
|
Profil || Suche |
|
016 13.09.2002, 21:12 the_viking |
es sollte eigendlich keine Einbußen von Geschwindigkeit geben, da (x > 0) ? x=1 : x=2; oder if(x>0) oder if(x>0) vom Compiler (eigendlich) in den gleichen _asm code umwandeln müsste --thx, cu, MfG the_viking (( My =]=H=O=M=E=> Page! )) |
|
Profil || Suche |
|
017 13.09.2002, 21:16 gerk |
ich war mir nicht sicher, drum das fragezeichen in den klammern. --„Und da wir uns ja seit heute etwas näher gekommen sind, kann ich nur sagen: Mir hilft da immer Norther volle Lautstärke (so wie jetzt), sodass die ganzen unrasierten, Wasserpfeife rauchenden, alternativen Wichsstudenten aus ihren, aus Bananenschalen und Abfall gebastelten, Sitzkissen fliegen.“ |
|
Profil || Suche |
|
018 13.09.2002, 21:36 Archangel |
hä? das funktioniert aber dann nur bei zahlen, aber n vector kann man doch nich mit 0 vergleichen.. der betrag eines vectors ist die länge.. oder hab ich jetzt was falsch verstanden ? -- |
|
Profil || Suche |
|
019 13.09.2002, 21:42 theDon |
natürlich geht das nur mit zahlen, lässt sich aber analog für einen vektor umbasteln. und schneller als quadrieren und dann wurzelziehen ist es auch --\o tanz den naziprau! o/ And more than ever, I hope to never fall, |
|
Profil || Suche |
|
020 13.09.2002, 23:39 Tron |
oh mann! korrekt sieht eine betragsfunktion SO aus: wobei fuer einen typ T natuerlich die operatoren < und - definiert sein muessen --'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams 'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett |
|
Profil || Suche |
|
021 13.09.2002, 23:52 theDon |
was ist bitte an meinem define evil? mal abgesehn davon das es auch mit c funktioniert und nicht nur mit c++? --\o tanz den naziprau! o/ And more than ever, I hope to never fall, |
|
Profil || Suche |
|
022 14.09.2002, 13:07 TheTinySteini |
Lag of Death: da in 3D-Engines die meisten Vektoren, die eine Richtung angeben, sowieso normalisiert sind (d.h. die Länge 1 haben), ist die Rechung mit dem Winkel sehr einfach. TheTinySteini |
|
Profil || Suche |
|
023 14.09.2002, 16:09 Cuthbert |
@Tiny: mfg cuthbert p.s. aber den cosinus zu vergleichen ist auch in ordnung, je nach dem womit der programierer mehr anfangen kann --Die Singlein vögeln und asten von Hupf zu Hupf. Dieser Beitrag wurde am 14.09.2002 um 16:11 von Cuthbert bearbeitet. |
|
Profil || Suche |
|
024 14.09.2002, 16:49 Prefect |
Im Fall cos direkt vergleichen vs. Winkel vergleichen spielt die Performance allerdings tatsächlich eine Rolle, denn Winkelfunktionen sind nicht sooo schnell (und wenn du direkt mit dem Cosinus vergleichst fällt eine Winkelfunktion raus). Wenn du das nur einmal pro Frame für ein NPC machst ist es vielleicht egal, aber da es IMHO nicht sooo den Unterschied in der Leserlichkeit macht (zur Not halt Konstanten definieren, COS_45 oder so), ist es doch angebrachter. cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|

