Delphi XE2 之 FireMonkey 入門(10) - 常用結構 TPoint、TPointF、TSmallPoint、TSize、TRect、TRectF 及相關方法...


它們都是結構, TPointF、TRectF 屬新增, 其它也都有升級; 現在都擁有豐富的方法和方便的運算符重載; 且有一組相關的公共函數.

這組內容重要的是它們都來自 System.Types 單元, 也就是不僅僅在 FM 中可用.

TPoint:
Create();      //
{運算符重載}
Equal;         // =
NotEqual;      // <>
Add;           // +
Subtract;      // -
Implicit;      // 可從 TSmallPoint 隱身轉換到 TPoint
Explicit;      // 可顯示轉換到 TSmallPoint
{方法}
Distance();    // 計算兩點之間的距離
SetLocation(); // 重定位
Offset();      // 偏移
Add();         // 加
Subtract();    // 減
IsZero();      // 是否在 [0,0] 點
{數據成員}
X,Y: Longint;{ 測試 }
procedure TForm1.Button1Click(Sender: TObject);
varp1,p2,p3: TPoint;
beginp1 := TPoint.Create(11, 22);p2.Create(11, 11);p3 := p1 + p2;ShowMessageFmt('%d,%d', [p3.X, p3.Y]); //22,33p3.SetLocation(0, 0);p3 := p1.Add(p2);ShowMessageFmt('%d,%d', [p3.X, p3.Y]); //22,33
end;


TPointF: 比 TPoint 多出三個方法:
Ceiling();  //
Truncate(); //
Round();    //procedure TForm1.Button1Click(Sender: TObject);
varpf: TPointF;p1,p2,p3: TPoint;
beginpf.Create(1.4, 1.6);p1 := pf.Ceiling;p2 := pf.Truncate;p3 := pf.Round;ShowMessageFmt('%d,%d  %d,%d  %d,%d', [p1.X, p1.Y, p2.X, p2.Y, p3.X, p3.Y]); //2,2  1,1  1,2
end;


TSmallPoint: 用得少, 成員也少.
Create();   //
{運算符重載}
Equal;      // =
NotEqual;   // <>
Add;        // +
Subtract;   // -
{方法}
Add();      // 加
Subtract(); // 減
Distance(); // 計算兩點間距
IsZero();   // 是否是 [0,0] 點
{數據成員}
X,Y: SmallInt;


TSize:
Create();   //
{運算符重載}
Equal;      // =
NotEqual;   // <>
Add;        // +
Subtract;   // -
{方法}
Add();      // 加
Subtract(); // 減
Distance(); // 計算兩點間距
IsZero();   // 是否是 [0,0] 點
{屬性}
Width;      //
Height;     //
{數據成員}
cx,cy: Single;


TRect:
Create();         //建立時和可同時規格化矩形; 參見 NormalizeRect() 方法
{運算符重載}
Equal;            // =
NotEqual;         // <>
Add;              // + (并集)
Multiply;         // * (交集)
{類方法}
Empty;            //獲取一個空的 TRect 對象; 內聯
Intersect;        //獲取兩個矩形的交集矩形
Union;            //獲取兩個矩形的并集矩形
{方法}
NormalizeRect();  //規格化矩形; 當 Top > Bottom 或 Left > Right 時, 會置換數據使之合理.
IsEmpty();        //是否為空
Contains();       //是否包含指定點或指定矩形
IntersectsWith(); //判斷和指定矩形是否交叉
Intersect();      //和指定矩形進行交集運算
Union();          //和指定矩形進行并集運算
Offset();         //偏移
SetLocation();    //設置新原點
Inflate();        //放大矩形(保持中心點)
CenterPoint();    //獲取中心點
SplitRect();      //切除, TSplitRectType 枚舉(Left、Top、Right、Bottom)指示要留住的一邊
{屬性}
Width: Integer;   //有這些屬性很方便
Height: Integer;  //
Size: TSize;      //
Location: TPoint; //
{數據結構, 這同前}
(Left, Top, Right, Bottom: Longint) 或 (TopLeft, BottomRight: TPoint)


TRectF: 只比 TRect 多出了轉換到 TRect 時關于小數取舍的三個方法.
Ceiling();  //
Truncate(); //
Round();    //


相關的公共函數與過程:
{ function }
EqualRect();      //判斷 TRect 或 TRectF 是否相等
Rect();           //構建 TRect
RectF();          //構建 TRectF
NormalizeRectF(); //從 TPointF 數組規格化出一個 TRectF
NormalizeRect();  //規格化 TRectF
RectWidth();      //獲取矩形寬度
RectHeight();     //獲取矩形高度
RectCenter();     //讓矩形在另一指定矩形中居中
Bounds();         //根據原點、寬、高構建矩形
Point();          //構建 TPoint
PointF();         //構建 TPointF
MinPoint();       //比對兩個點返回小的(優先判斷了 Y)
ScalePoint();     //按指定比例移動點
SmallPoint();     //構建 TSmallPoint
PtInRect();       //判斷點是否在指定矩形中
PtInCircle();     //判斷點是否在指定了中心與半徑的圓中
IntersectRect();  //判斷兩矩形是否相交
UnionRect();      //結合兩矩形
IsRectEmpty();    //判斷矩形是否為空
OffsetRect();     //偏移矩形
CenterPoint();    //獲取矩形中心點
SplitRect();      //矩形切除
CenteredRect();   //算出兩個矩形的中間過渡矩形; 應該是用于動畫的
IntersectRectF(); //輸出兩矩形的交集
UnionRectF();     //輸出兩矩形的并集
{ procedure }
MultiplyRect();   //按比放縮矩形
InflateRect();    //按量放縮矩形

轉載于:https://www.cnblogs.com/del/archive/2011/09/23/2186008.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/378154.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/378154.shtml
英文地址,請注明出處:http://en.pswp.cn/news/378154.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【C++ grammar】數據類型轉換、列表初始化

布爾類型 C語言在其標準化過程中引入了bool、true和false關鍵字&#xff0c;增加了原生數據類型來支持布爾數據。 布爾類型的大小&#xff08;所占的存儲空間&#xff09;依賴于具體的編譯器實現。也可以用 sizeof運算符得到其占用的空間 Conversion between bool and int 0…

Python對自定義離散點進行指定多項式函數擬合

自定義離散點進行指定多項式函數擬合 用戶自己自己輸入坐標點&#xff0c;擬合函數可根據用戶輸入的多項式的最高次方進行自動擬合函數&#xff0c;擬合方法采用最小二乘法進行函數擬合。 (1,2),(2,5),(3,10),(4,17),(5,26),(6,37)(7,50),(8,65),(9,82) 很顯然是函數為二次函…

選哪個云計算平臺部署自己的網站?

技術發展讓我們可以擁有免費的空間啦&#xff01; 現在的云計算平臺很多&#xff0c;各大公司都在做這個。 我最近用了國內訪問比較順暢的&#xff0c;新浪SAE&#xff0c;cloudfoundry&#xff0c;openshift。 開始用新浪SAE&#xff0c;因為豆子花光了&#xff0c;就轉到clou…

array_fill_PHP array_fill()函數與示例

array_fillPHP array_fill()函數 (PHP array_fill() Function) array_fill() function is used to fill the n elements in an array from given index with the specific value. array_fill()函數用于使用給定索引從給定索引中填充數組中的n個元素。 Syntax: 句法&#xff1a…

阜陽市計算機學校助學金申請書,計算機系貧困生助學金申請書

尊敬的學校領導&#xff1a;您好&#xff01;我叫____來自計算機系____級____專業____班,我是一名喜愛讀書、熱愛集體并且性格溫和的男孩。我出生在一個貧窮而又落后的小村。家中有五口人&#xff0c;父母文化淺薄,在家務農,由于多年的勞累,父母兩人身體狀況較差,農業收入低微,…

【C++ grammar】C++簡化內存模型

1、stack&#xff08;棧&#xff09; 編譯器自動分配內存&#xff08;函數內部定義得局部變量、形參&#xff09; 2、堆&#xff08;Heap&#xff09; 一般由程序員分配釋放&#xff0c;若程序員不釋放&#xff0c;程序結束時可能由OS回收&#xff08;new和delete&#xff09; …

Effect of Diethylene Glycol on the Inkjet Printability of Reactive Dye Solution for Cotton Fabrics.

Effect of Diethylene Glycol on the Inkjet Printability of Reactive Dye Solution for Cotton Fabrics 二乙二醇對棉織物活性染料溶液噴墨印刷性能的影響 Diethylene Glycol 二乙二醇 Inkjet Printability 噴墨印刷性能 Reactive Dye Solution 活性染料溶液 Cotton Fabric…

一些常用的工具

可查看網站服務器使用的架構 http://toolbar.netcraft.com/site_report?urlwww.163.com 可在線制作 icon 圖標 http://www.damotou.com/index.php 好的UI設計 http://www.uiimg.com/ 轉載于:https://www.cnblogs.com/ouuy/p/3183613.html

Silverlight4.0教程之使用CompositeTransform復合變形特效實現倒影

微軟于PDC2009上發布Silverlight 4 Beta版&#xff0c;微軟在Silverlight 4版本中處理了約8000個的Silverlight終端用戶的請求&#xff0c;加入了一系列另開發人員興奮的新特性&#xff0c;最突出的主要體現在幾個方面&#xff1a; 開發工具增強&#xff1a;Visual Studio 2010…

julia矩陣運算_Julia中的復數及其運算

julia矩陣運算Julia| 復數 (Julia | Complex Numbers) The syntax to represent the complex number in Julia is: 在Julia中表示復數的語法為&#xff1a; Syntax: 句法&#xff1a; ABimHere, A and B are the values, and im is the global constant which is bound to th…

2019年的wps計算機考試題,2019年3月計算機一級WPS模擬題及答案(2.21)

【導語】2019年3月計算機一級考試備考正在進行中&#xff0c;為了方便考生及時有效的備考&#xff0c;那么&#xff0c;無憂考網為您精心整理了2019年3月計算機一級WPS模擬題及答案(2.21)&#xff0c;把握機會抓緊練習吧。如想獲取更多計算機一級考試模擬題及備考資料&#xff…

Python求解多項式方程

例如&#xff1a;二次函數&#xff1a;f(x) 10x^2 - 14x 22&#xff0c;依次求解x1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;6時函數表達式所對應的函數值。 import numpy as np #f(x) 10*x^2 - 14x 22 p np.array([10,-14,22])#這里存放的是系…

CSS中的border-radius屬性

CSS | 邊界半徑屬性 (CSS | border-radius Property) The border-radius property is commonly used to convert box elements into circles. We can convert box elements into the circle element by setting the border-radius to half of the length of a square element. …

【C++ grammar】Enhancement for Type System (C++11 對類型系統的增強)

數據類型 (Data type) int, long int, double, struct, char *, float [], int (*f)()… 計算機程序構造塊 計算機程序構造塊是不同大小粒度的計算機程序組成部分&#xff0c;它包括變量、表達式、函數或者模塊等。 類型系統 (Type System) 類型系統&#xff1a;在編程語言中…

.net romoting 的EventWrapper類

.net romoting 的EventWrapper類 注意&#xff1a;防火墻的問題 --------------------------------------------------- //定義廣播服務接口 [Serializable] public delegate void BroadCastEventHandler(string info); public interface IBroadCastService {…

一、織物組織相關基本概念

一、織物形成的五大運動&#xff1a;開口、引緯、打緯、送經、卷取 開口運動&#xff08;先開口讓織物形成上下兩層&#xff09; 引緯運動&#xff08;在上下兩層經紗之間進行引緯&#xff0c;把緯紗穿入上下兩層經紗之間&#xff0c;從而實現經紗緯紗之間的交織&#xff09; …

達爾豪斯大學計算機科學世界排名,達爾豪斯大學成了全加最好,這又是個什么排名?...

原標題&#xff1a;達爾豪斯大學成了全加最好&#xff0c;這又是個什么排名&#xff1f;沒有“八大”的知名&#xff0c;沒有“常春藤”的受寵&#xff0c;雖然它只是眾多名校中的普通一個&#xff0c;但只要你對它有個稍微的了解&#xff0c;你一定會愛上它的&#xff01;它雖…

tag標簽記錄

看到項目代碼中有一個自定義的tag標簽&#xff0c;想起以前自己寫過的標簽&#xff0c;竟然忘記的差不多了&#xff0c;手一癢&#xff0c;自己寫個簡單的tag標簽&#xff0c;回顧一下歷史知識 首先建一個servlet工程&#xff0c;然后寫個index.jsp&#xff0c;項目跑起來&…

java類只讀怎么辦_如何在Java中制作一個只讀類?

java類只讀怎么辦The question is that "can we make a read-only class in Java?" 問題是“我們可以用Java制作一個只讀類嗎&#xff1f;” The answer is: "Yes, we can make a read-only in java." 答案是&#xff1a; “是的&#xff0c;我們可以在J…

LeetCode 53:最大子序和解題以及優化思路(第一次獨立刷題記錄)

給定一個整數數組 nums &#xff0c;找到一個具有最大和的連續子數組&#xff08;子數組最少包含一個元素&#xff09;&#xff0c;返回其最大和。 示例: 輸入: [-2,1,-3,4,-1,2,1,-5,4] 輸出: 6 解釋: 連續子數組 [4,-1,2,1] 的和最大&#xff0c;為 6。 進階: 如果你已經實現…