青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

SoRoMan

人若無名,便可專心練劍.

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  12 隨筆 :: 1 文章 :: 41 評論 :: 0 Trackbacks

思考:計算機圖形學中的左上像素填充約定(top-left filling convention for filling geometry)

我們知道目前顯示器顯示的原理,光柵化顯示最小的單元是pixel(或者說精度為piexl),一個pixel所占的區域一般是個正方形,顯示器上的畫面就由一個或多個這樣的小方格組成。如果以每個小方格為一個單元來制定屏幕坐標的話,問題就來了,因為方格本身有大小,不是一個嚴格意義上的"點"。

問題來源:屏幕坐標點的選取以及像素方格本身的大小
如果以方格中心點為基準制定坐標點(即對于任意一整數坐標點p(x,y),p必為某個像素方格的中心),以一個方格為跨度來制定屏幕坐標系的話。如圖,屏幕上3X3的方格組成一個正方形的畫面,如果按照方格中心點為基準制定坐標點,其區域屏幕坐標為(0,0,2,2)(注意:0,1,2都位于方格中心,其中,左上角坐標為(0,0),右下角坐標為(2,2)),而按照數學運算,其上下跨距就是2-0 = 2 pixels,左右跨距2-0 = 2 pixels,即總共包含2X2=4個方格.而實際畫面中的跨距是3X3,即共包含9個方格(從最左上端到最右下端),問題來了,前后矛盾了。左上像素填充約定可以解決這個問題。

問題解決:左上像素填充約定
還是舉剛才的例子,如果給定左上角坐標為(0,0),右下角坐標為(2,2)的矩形區域,叫顯示設備去繪制的話,按照左上像素填充約定,在屏幕上填充的像素點將是:(0,0),(0,1),(1,0),(1,0)這個2X2區域,而非圖中所示的3X3區域。反過來說圖中所示的3X3區域要用坐標表示的話應該是(0,0,3,3)。簡單來說,在左上像素填充約定下,要填充(x1,y1,x2,y2)(x1,y1,x2,y2為整數)的矩形,實際填充的區域會是(x1-0.5,y1-0.5,x2-0.5,y2-0.5),這個區域的左上角像素坐標為(x1,y1),右下角像素坐標為(x2-1,y2-1),即實際的填充區域會向左和向上各偏移0.5個像素。故稱左上像素填充約定。

? 0 1?2
?? 0 口口口
?? 1 口口口
?? 2 口口口

D3D, GDI, OpenGL等圖形庫使用左上填充約定的,如果接觸過這些圖形庫,你可能會知道這個約定。還記得畫一個全屏幕的矩形吧:DrawRectangle(0, 0, Screen_Width-1, Screen_Height-1)。

想法一:想到別的填充約定,比如右上,左下,右下等,這些不知道有哪些系統使用。

想法二:如果以像素方格的左上角為基準制定坐標點(即對于任意一整數坐標點p(x,y),p必為某個像素方格的左上角),情況怎么樣?這時,給定(0,0,2,2),則填充時可以還會遇到一樣的問題,填充(0,0),(0,1),(1,0),(1,0),(2,0),(2,1),(0,2),(1,2),(2,2),最后還是包含了3X3= 9個像素。

想法三:
to be continued...

posted on 2006-07-26 16:55 SoRoMan 閱讀(2163) 評論(7)  編輯 收藏 引用

評論

# re: 思考:計算機圖形學中的左上像素填充約定(top-left filling convention for filling geometry) 2006-07-26 17:50 mroske
原來還有這種約定。。。

在我的認識中一個坐標都是從 0 開始,而長度都是從 1 開始。(光柵)

int w = 3, h = 3;
for (int y = 0; y < h; ++y) {
for (int x = 0; x < w; ++x) {
SetPixel(x, y, 0xffffff);
}
}
代碼說明 y = h - 1 和 x = w - 1。

如果一個坐標它的長度因該為1,那么 p1(0, 0) 到 p2(2, 0) 的長度應該為3。即 (0,0), (1,0), (2,0),如果直接 2 - 0 = 2,那這個得到只是坐標差距,并不是長度。 換成長度為 2 = w - 1, w = 3;

typedef struct tagRECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;
其中 left 和 top 是左上角的 x, y 軸坐標. right 和 bottom 是右下角的 x, y 軸坐標。
在設置這樣一個矩形范圍的時候,往往右下角坐標是不包括在內的,也就是說右下角實際坐標為 right - 1, bottom -1,所以 right - left 是可以直接算出其長度的。


以上純屬個人瞎吹。。。。
  回復  更多評論
  

# re: 思考:計算機圖形學中的左上像素填充約定(top-left filling convention for filling geometry) 2006-07-26 21:14 SoRoMan
to mroske:

如果一個坐標它的長度因該為1,那么 p1(0, 0) 到 p2(2, 0) 的長度應該為3。即 (0,0), (1,0), (2,0),如果直接 2 - 0 = 2,那這個得到只是坐標差距,并不是長度。
------------------------------------------
不知道你這里說的長度是什么意思?

在屏幕上的最小單位是一個像素,屏幕上的坐標是以以像素為單位的,所以坐標之間的差距就是多少個像素.

p1(0, 0) 到 p2(2, 0) 之間的差距為2,表明中間跨越2個像素.或者說長度為2個像素. 所以不能填充(0,0),(1,0),(2,0) 3個像素.我們可以作個實驗,你調用一些圖形庫中的畫線函數,畫出p1(0, 0) 到 p2(2, 0)的直線,最后在屏幕上出現的應該是2個像素,而不是3個.  回復  更多評論
  

# re: 思考:計算機圖形學中的左上像素填充約定(top-left filling convention for filling geometry) 2006-07-27 11:29 mroske
:) 我所指的所謂“長度”即一個像素的長度,如果有3個像素,那我可能說長度為3。不好意思,讓你費解了。

之所以我所 2 - 0 = 2 是坐標差距,是因為“0”在長度中是無意義的(但存在)。。

“你調用一些圖形庫中的畫線函數,畫出p1(0, 0) 到 p2(2, 0)的直線,最后在屏幕上出現的應該是2個像素,而不是3個”
----- 或許你是對的。

但是我認為畫線,它因該存在于一個矩形中,即任何的線都是一個矩形的對角線。不好意思我再引用我先前的回答:
“在設置這樣一個矩形范圍的時候,往往右下角坐標是不包括在內的,也就是說右下角實際坐標為 right - 1, bottom -1,所以 right - left 是可以直接算出其長度的。 ”
如果說 left = 0, top = 0, right = 2, bottom = 0,那么 right - left 應該等于 2,即長度為 2。 那么實際坐標有如下:(0,0), (1,0),不包括的坐標(2,0)。證明右下角坐標是不包括的。



謝謝你的實驗,我去做了一下。
  回復  更多評論
  

# re: 思考:計算機圖形學中的左上像素填充約定(top-left filling convention for filling geometry) 2006-07-27 11:40 mroske
“即任何的線都是一個矩形的對角線”并非任何的線,我指任何的直線。:)  回復  更多評論
  

# re: 思考:計算機圖形學中的左上像素填充約定(top-left filling convention for filling geometry) 2006-07-27 12:06 SoRoMan

“在設置這樣一個矩形范圍的時候,往往右下角坐標是不包括在內的,也就是說右下角實際坐標為 right - 1, bottom -1,所以 right - left 是可以直接算出其長度的。 ”
--------------------
你說的這個是結論,至于原因,就是為什么在繪制的時候不去包括右下角(right, bottom),而去繪制(right - 1, bottom - 1)?正如我文中說的,是左上約定在起的作用。

簡單概括一下就是:

在一般的坐標系里面,比如畫一個矩形(0,0,2,2),會經過(2,2)這點。而在以像素為單位的屏幕坐標系里面,像素有大小,所以如果以其中心點為基準(坐標點),在繪制的時候,就會包含(right, bottom)這個像素的1/4部分,但是1個像素是最小單元,要么繪制,要么不繪制,所以,為了解決無法繪制1/4像素的問題,就統統向左向上移動1/2像素,繪制移動后的矩形區域,其大小(面積)不變,位置變了,新的矩形的右下角成了(right - 1, bottom - 1)。
  回復  更多評論
  

# re: 思考:計算機圖形學中的左上像素填充約定(top-left filling convention for filling geometry) 2006-07-27 23:08 mroske
:) 為了不污染你的 blog,我把我的想法寫在了我自己的 blog,
http://blog.programfan.com/article.asp?id=16886
上面連接正是。  回復  更多評論
  

# re: 思考:計算機圖形學中的左上像素填充約定(top-left filling convention for filling geometry) 2006-11-29 13:11 asuna
介個吧, 你們說的都很高深, 我看的也不是很懂. 偶只知道, 在(0, 0, 2, 2)的坐標里面, 畫矩形的話是8個格子, 但是填矩形的話是4個格子.
不過我覺得如果你愿意, 既然坐標都設置成了中心點了, 矩形當然也可以填成9個格子.
不過如果不是自己寫坐標和寫填充函數的話, ms默認的坐標設置是左上角的坐標.
既然是約定么,應該就只是告訴大家他是照這個約定來填的象素.我的理解就是這個約定里面畫會比填在下面和右邊個多一個象素.
cc...  回復  更多評論
  


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲第一中文字幕| 欧美国产另类| 美女主播视频一区| 亚洲午夜一区二区三区| 在线成人免费视频| 久久精品2019中文字幕| 亚洲午夜电影| 亚洲靠逼com| 亚洲欧美日韩国产综合在线 | 一区二区三区视频在线观看| 久久久人成影片一区二区三区观看| 久久精品国产欧美激情| 欧美一区二区高清在线观看| 欧美一区二区性| 欧美一区日韩一区| 欧美高清在线一区| 国产精品亚洲美女av网站| 一本色道久久综合亚洲二区三区 | 欧美另类视频| 欧美精品在线一区二区三区| 欧美精品久久一区二区| 99热精品在线观看| 欧美日韩免费观看一区=区三区 | 欧美中文在线观看国产| 欧美在线观看www| 久久欧美中文字幕| 亚洲一级电影| 久久精品99久久香蕉国产色戒| 国产精品一区久久久| 一本到12不卡视频在线dvd| 亚洲天堂男人| 欧美高清不卡在线| 国产精品久久久久久久午夜| 国产日韩欧美不卡| 亚洲一区二区在线看| 久久另类ts人妖一区二区 | 一区二区三区四区国产| 亚洲永久在线观看| av成人黄色| 久久精品亚洲精品| 欧美激情小视频| 亚洲网站在线| 欧美jizzhd精品欧美巨大免费| 久久综合中文色婷婷| 欧美日韩在线视频一区| 亚洲人成毛片在线播放| 欧美一区亚洲二区| 亚洲美女毛片| 亚洲一区二区三区高清| 欧美色中文字幕| 影音先锋久久资源网| 亚洲欧美精品一区| 9色porny自拍视频一区二区| 国产欧美视频一区二区| 黄色成人小视频| 久久精品国产视频| 亚洲视频碰碰| 欧美国产日韩在线| 亚洲美女诱惑| 欧美国产日本| 一区二区三区久久久| 亚洲黄色免费| 欧美在线亚洲在线| 黄色一区二区三区| 欧美一级在线播放| 在线亚洲一区二区| 国产伦精品一区| 欧美精品v日韩精品v国产精品 | 在线成人激情视频| 亚洲欧美日韩综合国产aⅴ| 激情综合久久| 美国十次了思思久久精品导航| 亚洲综合日韩在线| 欧美日韩中文精品| 伊大人香蕉综合8在线视| 久久久亚洲影院你懂的| 亚洲综合大片69999| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 欧美va亚洲va国产综合| 国产精品视频区| 一区二区三区亚洲| 亚洲国产日韩在线| 麻豆久久婷婷| 99国产精品久久久久久久久久| 久久久人成影片一区二区三区观看 | 亚洲自拍偷拍一区| 午夜一级在线看亚洲| 国产精品美女999| 最新日韩欧美| 亚洲一区二区黄色| 国产伦精品一区二区三区高清版 | 亚洲影院在线观看| 午夜精品剧场| 激情综合在线| 亚洲日韩中文字幕在线播放| 99国产精品久久| 国产欧美精品在线| 久热精品视频在线观看一区| 老鸭窝毛片一区二区三区| 亚洲区中文字幕| 欧美jizzhd精品欧美喷水| 欧美性做爰猛烈叫床潮| 久久精品综合| 欧美精品免费在线| 狼狼综合久久久久综合网| 欧美不卡在线视频| 亚洲桃色在线一区| 日韩天堂在线观看| 亚洲国产导航| 亚洲一级在线| 亚洲一区二区精品在线| 欧美日韩一区在线观看视频| 欧美激情第3页| 99精品久久久| 亚洲国产激情| 狠狠色狠狠色综合人人| 亚洲第一中文字幕| 激情久久婷婷| 一区二区欧美在线| 在线精品观看| 久久精品99无色码中文字幕| 亚洲另类黄色| 亚洲美女黄色| 99精品视频免费观看视频| 欧美一区二区三区日韩| 亚洲一区二区三区精品在线观看| 久久久久久久久久久久久女国产乱| 99亚洲伊人久久精品影院红桃| 久久这里只有| 久久久久一区二区三区| 国产精品qvod| 亚洲在线观看视频网站| 欧美成人免费网站| 日韩一区二区精品视频| 麻豆精品传媒视频| 久久久www免费人成黑人精品 | 亚洲少妇在线| 亚洲自拍偷拍麻豆| 欧美黄色aa电影| 免费av成人在线| 在线观看日韩av| 久久爱www久久做| 亚欧美中日韩视频| 亚洲精品久久在线| 午夜影院日韩| 亚洲第一精品夜夜躁人人爽 | 久久久www免费人成黑人精品 | 欧美一区二区精品在线| 欧美在线免费观看视频| 欧美日韩一区二区视频在线观看| 亚洲电影免费| 美女免费视频一区| 欧美成人一区二区| 一区二区三区福利| 欧美精品成人一区二区在线观看| 在线看片成人| 欧美成人xxx| 亚洲福利电影| 亚洲婷婷综合久久一本伊一区| 欧美华人在线视频| 欧美激情欧美狂野欧美精品 | 欧美aⅴ一区二区三区视频| 亚洲人成亚洲人成在线观看| 欧美成年人视频网站| 久久久亚洲人| 1024国产精品| 亚洲色图制服丝袜| 亚洲一区网站| 性色av一区二区三区红粉影视| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲欧洲一区二区在线播放| 亚洲精品视频啊美女在线直播| 欧美视频在线观看| 亚洲欧美日韩精品| 99视频一区二区| 欧美午夜免费影院| 亚洲一区二区三区高清不卡| 蜜臀av一级做a爰片久久| 亚洲精品乱码久久久久久按摩观 | 久久久亚洲一区| 亚洲精品看片| 欧美亚洲专区| 一本色道久久综合亚洲精品小说| 欧美日韩一区在线观看| 亚欧成人在线| 91久久精品美女高潮| 西瓜成人精品人成网站| 尤物yw午夜国产精品视频明星| 欧美黑人在线观看| 午夜免费在线观看精品视频| 久久本道综合色狠狠五月| 国产精品久久久久久亚洲毛片| 午夜精品偷拍| 亚洲伦理一区| 噜噜噜噜噜久久久久久91| 夜夜嗨一区二区| 黄网站色欧美视频| 国产精品videosex极品| 免费在线欧美黄色| 亚洲女爱视频在线|