看板 Prob_Solve 關於我們 聯絡資訊
※ 引述《mrbigmouth (拒絕崩潰的蒲公英)》之銘言: : 高中數學不知道丟到哪裡去了只好來此請教 m(_ _)m : 現有一方格地圖座標系, : 每個座標都代表一個方格, : 現在我要計算某個格子有光源、單位時其光線/視線能夠到達何處 : 依照簡化後的規則,一律起源格的中心點為起點,目標格的中心點為終點 : 兩點畫線之後,所經的格子邊、格子皆視為其光線/視線會經過的路段 : 這些格子邊之上、格子範圍內的一切影響源(霧氣、遮蔽物等等)都會影響到光線與視線 : (舉例而言,座標1,1到座標2,3之間會經過 : 座標1,1 : 座標1,1上面的邊 : 座標1,2 : 座標1,2右邊的邊 : 座標2,2 : 座標2,2上面的邊 : 座標2,3) : 數學上, : 可以把座標以x2-1的方式求出double後的座標系, : 再求出兩點的線性方程式, : 最後再一一代入各座標得出會經過哪些格子的邊、格子的範圍。 : ......但程式要怎麼做到這一過程?@@ : 已知兩點求出線性方程式? 這種東西沒辦法存到記憶體裡... : 有辦法將這過程簡化為程式直接可用的公式嗎? : 或是有大能可以提供更方便直接的作法嗎? 這我猜應該屬於 ray-tracing 的範圍吧. 有個簡單的公式, 給定一條直線(兩點) 你可以判斷 input point 是在線的 左/右. 你用 格子的端點去 scan 應該就行了. http://stackoverflow.com/questions/4977491/determining-if-two-line-segments-intersect -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 128.125.20.198