日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Point和PointF

發(fā)布時(shí)間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Point和PointF 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Point和PointF

Point在GDI+的結(jié)構(gòu)中是最簡(jiǎn)單的,在數(shù)學(xué)上它完全等價(jià)于一個(gè)二維矢量,包含兩個(gè)公共整型屬性,表示它與某個(gè)特定位置的水平和垂直距離。例如,為了從點(diǎn)A到點(diǎn)B,需要水平移動(dòng)11個(gè)單位,并向下垂直移動(dòng)11個(gè)單位。在坐標(biāo)圖中使用x和y,可以通過(guò)如下代碼創(chuàng)建一個(gè)Point結(jié)構(gòu)來(lái)表示:

Point ab = new Point(11, 11);

Console.WriteLine("Moved {0} across, {1} down", ab.X, ab.Y);
其中,屬性X和Y都是可讀寫屬性,可以在Point中直接設(shè)置這些值,例如下面的代碼:

Point ab = new Point();

ab.X = 11;

ab.Y = 11;

Console.WriteLine("Moved {0} across, {1} down", ab.X, ab.Y);
按照慣例,水平和垂直坐標(biāo)表示為小寫的x和y,但是對(duì)應(yīng)的Point屬性是大寫的X和Y。這是因?yàn)樵贑#中,公共屬性的一般約定是名稱以大寫字母開頭。

PointF與Point完全相同,但X和Y屬性的類型是float,而不是int。PointF用于坐標(biāo)不是整數(shù)值的情況。已經(jīng)為這些結(jié)構(gòu)定義了數(shù)據(jù)類型轉(zhuǎn)換,這樣就可以把Point隱式地轉(zhuǎn)換為 PointF。但是上述轉(zhuǎn)換沒(méi)有相應(yīng)的逆過(guò)程,要把PointF轉(zhuǎn)換為Point,必須顯式地復(fù)制值,或使用下面的3個(gè)轉(zhuǎn)換方法,即Round()、Truncate()和Ceiling():

PointF mm = new PointF(20.5F, 10.9F);

Point nn = new Point();

nn.X = (int)mm.X;

nn.Y = (int)mm.Y;

Point ab1 = Point.Roundmm);

Point ab2 = Point.Truncate(mm);

Point ab3 = Point.Ceiling(mm);

PointF mm = nn;
在默認(rèn)情況下,GDI+是以電腦屏幕上的像素作為單位的,Graphics對(duì)象方法把它們接收到的坐標(biāo)看作其參數(shù)的方式。例如,點(diǎn)new Point(20,10)表示在屏幕上水平移動(dòng)20個(gè)像素,向下垂直移動(dòng)10個(gè)像素。通常這些像素從窗口客戶區(qū)域的左上角開始測(cè)量,如上面的示例所示。但是,情況并不總是如此。例如,在某些情況下,需要以窗口的左上角為原點(diǎn)來(lái)繪圖,甚至以屏幕的左上角為原點(diǎn)來(lái)繪圖。但在大多數(shù)情況下,除非文檔說(shuō)明書說(shuō)明,否則都可以假定像素值是相對(duì)于客戶區(qū)域的左上角的。

總結(jié)

以上是生活随笔為你收集整理的Point和PointF的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。