• 沒有找到結果。

4.1.1 掃描線

在本系統開始產生水流走勢線(Flow lines)之前,我們必須要先 在水流區域,沿著水流的河岸線建立和河岸線垂直,且穿過水面的掃描線 (Scan lines),掃描線的數目如同前一章節所描述,是將使用者再描繪水 流河岸線時,對於第一條河岸線所取的點的個數乘以一常數而決定。

首先,系統會先分別計算出使用者所描繪的兩條河岸線的長度,

並將兩條河岸線的長度分別除以掃描線的數目,意思即是將兩條河岸線等 分。之後再把兩條河岸線互相對應的等分點相連接, 接著系統把兩條河

點互相連接,當做最後一條掃描線,而我們的水流走勢線,就是從第一條 掃描線出發,穿過所有的其他掃描線,最終在最後一條掃描線上結束。

圖 4.1 (左)河流水流區域和障礙物區域輪廓圖 (右) 水流區域掃描線圖

4.1.2 水流走勢線

產生了水流區域的掃描線之後,開始進入水流走勢線的產生。本文所產 生的水流走勢線,如同上述,是由第一條掃描線出發,穿過其他所有的掃描線,

最後終止於最後一條掃描線,貫穿整的水流區域的。水流走勢線是用來指出水流 的方向,也就是下一個階段本系統將產生的水流波紋線的流動路徑。

在本論文所提出的系統中,水流走勢線和每一個水流區段內的水流波紋線 是一對一互相對應的,因此水流走勢線的數目,也等於每一個區段內的水流波紋 線的數目,而水流波紋線的數目則在上一個章節章提及,正比於使用者在第一條 水流河岸線上取的點的個數。假設 N 為本系統所要產生水流走勢線的數目,我們 先將所有的掃描線先分成 N + 1 等分, 再把掃描線上的 N 個等分點依照其順序

互相對應,再把相對應的等分點連接。這些連接起來的就是水流走勢線。但是這 裡所產生的水流走勢線並不是最終的水流走勢線,因為在此尚未考慮到使用者所 輸入的水流障礙物所造成的影響。

圖 4.2 (左)水流區域輪廓圖, (中)水流區域掃描線圖, (右)水流走勢線圖

為了產生合乎要求的水流走勢線,接下來,系統要開始考慮水流障礙物 所造成的影響,並且把先前所產生的水流走勢線作調整.第一歩,先找到所有 障礙物的邊緣與掃描線的交點,然後再個別針對每一障礙物,分別依照下列三 個條件,找出一條掃描線:

(1) 沿著河岸線由上而下,落在障礙物之前 (2) 和該障礙物沒有交點

(3) 符合前兩條件,且和該障礙物距離最近

此掃描線即為該障礙物的上臨界線(Up Critical line).而根據相同的條件,落 在該障礙物之後的即是該障礙物的下臨界線(Down Critical line)

接著,針對每一個障礙物,系統會找出使用者在輪廓線上取的點中,分

要調整的第一類,

圖 4.4 (左)水流走勢線不考慮水流障礙物 (右)水流走勢線考慮水流障礙物

相關文件