作者yan04870449 (楊伯)
看板GameDesign
標題[程式] 在3D空間中如果判斷誰在左邊誰在右邊
時間Sat Mar 19 00:17:24 2011
如題,我想在一個3D遊戲中檢查敵人在我左邊還是右邊
,但是我卻不知道要用什麼做依據來算。
我現在只知道用角色的正面向量跟與敵人的向量求出內積
,但是確不知道這個內積的值是正的還是負的,因此就不
知道是左邊還是右邊了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.128.56
1F:推 NDark:定位一個3維 要兩個向量 你缺一個 03/19 00:19
2F:→ yan04870449:如果我的UP是一樣的,這樣子還是缺一個嗎? 03/19 00:37
3F:→ FSVDFS:自己正前方的座標一個,自己和對方的座標連線一個 03/19 04:58
4F:→ FSVDFS:外積 03/19 04:58
5F:→ FSVDFS:結果正負號就是XD 03/19 05:03
6F:→ FSVDFS:記得判斷大於180度狀況,不然用超過180度為相反結果也可以 03/19 05:07
7F:→ FSVDFS:睡不著QQ 03/19 05:09
8F:→ FSVDFS:2D的左右邊也可以,只是要自己補一個維度(為0更好算)去算 03/19 05:27
9F:推 Ebergies:如同樓上的說法, 要求外積不是內積 03/19 11:32
10F:→ yan04870449:感謝,我馬上試試看 03/19 14:30
11F:推 nepho:外積的結果不是純量 何來正負? 03/19 15:32
12F:→ nepho:先算出右邊的向量 和敵人的相對座標內積就可以了 03/19 15:36
13F:→ nepho:右邊可以用前方向量外積up向量 03/19 15:37
14F:→ nepho:如果up固定朝上 也可以用前方向量的xz座標直接旋轉 03/19 15:39
15F:推 Ebergies:外積後只有兩個方向,一是向量平面的上方,一是下方 03/19 17:28
16F:→ Ebergies:不過 N 的做法也不錯 03/19 17:30
17F:推 FSVDFS:抱歉講錯orz 外積方向才是重點! 03/19 22:18
18F:→ FSVDFS:求出來的結果是向量不是純量orz (當掉重修= =) 03/19 22:18
19F:→ FSVDFS:可以用,但是只需要該向量的方向(正負號),其他不必= = 03/19 22:20
20F:→ teexit:外積應該比較好做吧 知道自己面對的方向和敵人的位置 03/20 20:16
21F:→ yan04870449:最後我用N大的方法,因為外積有三個量,但是我卻不知 03/20 20:53
22F:→ yan04870449:道要怎麼用這三個量分辨左右。 03/20 20:54
23F:→ yan04870449:不過還是很感謝大家熱心的回答!>< 03/20 20:54
24F:→ FSVDFS:外積和你的"上方"的方向比較結果,方向相同和相異即代表 03/21 00:53
25F:→ FSVDFS:左右,可是要注意座標系統。事實上n大的方法比較快 03/21 00:54
26F:→ FSVDFS:又學到了一課XD 03/21 00:55