Re: [求救]關於遠近的演算法
看板GameDesign (遊戲設計)作者etrexetrex (moonet)時間17年前 (2008/04/04 02:00)推噓7(7推 0噓 11→)留言18則, 6人參與討論串3/6 (看更多)
※ 引述《KanoLoa (諾)》之銘言:
: 最近寫遊戲,需要將2D的圖片模擬成有遠近之分的效果。
: 我在定位座標位置的時候遇到了很大的困難 /_\
: 請看 http://w5.loxa.com.tw/hua0004/mathptt.GIF
: 這算是從中間望向遠處的概念圖?
: 右圖本來是一個矩形的圖形,
: 經過放遠之後,會變得像左邊的圖一樣。
: 而 A , B 的大小是我可以決定的,相當於決定在A點時,縮放的大小。
: 左圖Y1~Y8 彼此間距離相同。
: 但是經過放遠之後,彼此的間隔大小將會是不同的。
: ==========
: 我的問題就出在,假設有某物件,原本是在總長 3/7 的位置。
: 我該如何找出轉換之後,它應該所在的位置呢?
: (就如圖,右邊的紅線在Y3,Y4之間,轉換之後的高度就不再是 3/7 的位置 )
: 請問有什麼方法或是公式能求解嗎?
: 我只會用對角線不斷的找出中心點,(如左圖畫出等份的方法,有小灰線)
: 但是這樣永遠只能分出 2^n等份,不在 k/2^n 的位置會很難找 ,EX: 1/3 。
: 我希望是,決定A,B的長度、原本所在的比例位置,
: 就能找出轉換後的位置。
: 想請好心的版友幫忙,或是給點提示,拜託了 O_Q
: (我有貼在 math 跟 ask 版問過, 無人問津 /__\。)
一消失點座標系
http://etrex.blogspot.com/2008/03/blog-post_14.html
延伸產物 (含有c++ code)
http://etrex.blogspot.com/2008/03/beta.html
原理:
假設Y有100段
根據三角形相似原理得出 Y1:Y2 = Y2:Y3 ... 以此類推
設Y1 = 1 (最近的Y單位長度應與X單位長度相同)
設Y100 趨近於0 (假設Y100 = 0.01)
解公比 r
Y100 = r^99
Y100 ^ (1/99) = r
得到 r = pow( Y100 , 1/99 ) //C++語法 不過我是用1/100
想要 Yn 座標
就必須求等比級數
Sn = y1 * (1-r^n) / (1-r) //y1 = 1 所以
Sn = (1-r^n) / (1-r)
但我在程式中是寫 1 - r^n
PS:Y座標會影響X座標... 看看我的code吧 XD
--
http://etrex.blogspot.com/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.71.124
→
04/04 02:03, , 1F
04/04 02:03, 1F
※ 編輯: etrexetrex 來自: 61.231.71.124 (04/04 02:35)
→
04/04 02:45, , 2F
04/04 02:45, 2F
→
04/04 03:00, , 3F
04/04 03:00, 3F
→
04/04 04:07, , 4F
04/04 04:07, 4F
→
04/04 04:07, , 5F
04/04 04:07, 5F
→
04/04 04:08, , 6F
04/04 04:08, 6F
→
04/04 04:10, , 7F
04/04 04:10, 7F
推
04/04 14:42, , 8F
04/04 14:42, 8F
推
04/04 23:47, , 9F
04/04 23:47, 9F
→
04/05 00:23, , 10F
04/05 00:23, 10F
推
04/05 16:23, , 11F
04/05 16:23, 11F
推
04/05 18:07, , 12F
04/05 18:07, 12F
推
04/05 23:55, , 13F
04/05 23:55, 13F
→
04/06 03:00, , 14F
04/06 03:00, 14F
推
04/06 03:34, , 15F
04/06 03:34, 15F
推
04/07 09:05, , 16F
04/07 09:05, 16F
→
04/07 13:04, , 17F
04/07 13:04, 17F
→
04/07 15:03, , 18F
04/07 15:03, 18F
討論串 (同標題文章)
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章
95
180