線條

線條是點陣顯示 (的一組醒目提示圖元,或列印頁面上的一組點,) 由兩個點識別:起點和終點。 位於起點的圖元一律包含線上條中,而位於結束點的圖元一律會排除。 (這種行有時稱為 inclusive-exclusive.)

當應用程式呼叫其中一個線條繪製函式時,圖形裝置介面 (GDI) ,或在某些情況下,設備磁碟機會決定應該醒目提示的圖元。 GDI 是動態連結程式庫 (DLL) ,可處理來自應用程式的圖形函數呼叫,並將這些呼叫傳遞至設備磁碟機。 設備磁碟機是一種 DLL,可從 GDI 接收輸入、將輸入轉換成裝置命令,然後將這些命令傳遞至適當的裝置。 GDI 使用數位差異分析器 (DDA) 來判斷定義線條的圖元集。 DDA 會檢查線條上的每一個點,並識別顯示在顯示介面上的圖元, (或列印頁面上的點,以判斷圖元集) 對應到點。 下圖顯示線條、其起點、結束點,以及使用簡單 DDA 醒目提示的圖元。

圖例顯示位於線條上圖元的格線、開始點和結束點、線條和網底

最簡單的最常見的 DDA 是 Bresenham 或 incremental DDA。 此演算法的修改版本會在 Windows 中繪製線條。 累加式 DDA 為了簡單起見,但也會針對其不透明而加以記錄。 因為它會無條件舍去為最接近的整數值,所以有時無法代表應用程式所要求的原始行。 GDI 所使用的 DDA 不會四捨五入為最接近的整數。 因此,這個新的 DDA 會產生輸出,有時更接近應用程式所要求的原始行外觀。

注意

如果應用程式需要無法透過新的 DDA 達到的行輸出,它可以呼叫 LineDDA 函式並提供私人 DDA (LineDDAProc) 來繪製自己的行。 不過, LineDDA 函式繪製的線條比線條繪圖函式慢很多。 如果速度是主要考慮,請勿在應用程式中使用此函式。

 

應用程式可以使用新的 DDA 來繪製單行和多個連接線段。 應用程式可以藉由呼叫 LineTo 函式來繪製單行。 此函式會從目前位置向上繪製線條,但不包括指定的結束點。 應用程式可以藉由呼叫 Polyline 函式來繪製一系列連接的線條線段,並提供指定每個線條線段結束點的點陣列。 應用程式可以藉由呼叫 PolyPolyline 函式,提供所需的結束點,繪製多個不連續的連線線條線段。

下圖顯示呼叫 LineToPolyline 和 PolyPolyline函數所建立 的行 輸出。

圖例顯示直線、「l」形狀方塊,以及顯示三維的兩個圖形