VCL 的 Canvas.Pen 对应FMX: Canvas.Stroke;
VCL到 Canvas.Brush 对应FMX: Canvas.Fill.

TCircle 圆形控件

Inkscape 0.91

https://inkscape.org/en/download/windows/

点坐标的处理

PointF(150, 150)

TPointF.Create(300, 340);

LLayout.TopLeft := TPointF.Zero;

Position := Rect.TopLeft;

Position := Point(Rect.Right, Rect.Top);

MakeColor(r,g,b)

线条宽度

Canvas.Stroke.Thickness := 10;
Canvas.Stroke.Kind := TBrushKind.Solid;

直线

procedure TForm1.FormPaint(Sender: TObject; Canvas: TCanvas;
const ARect: TRectF);
begin
Canvas.Stroke.Color := TAlphaColorRec.Green;
Self.Canvas.DrawLine(TPointF.Create(, ), TPointF.Create(, ), );
end;

画圆

  Canvas.Fill.Color := TAlphaColorRec.Aqua;
Canvas.FillEllipse(RectF(, , , ), );
Canvas.FillEllipse(RectF(, , , ), );

TRectF.Create();

TPointF.create

多边形

DrawPolygon

Polygon

procedure TForm1.DrawPolygonClick(Sender: TObject);
var
p1, p2, p3, p4, p5, p6: TPointF;
MyPolygon: TPolygon; //System.Math.Vectors unit needed.
begin
// sets the points that define the polygon
p1 := TPointF.Create(, );
p2 := TPointF.Create(, );
p3 := TPointF.Create(, );
p4 := TPointF.Create(, );
p5 := TPointF.Create(, );
p6 := TPointF.Create(, );
// creates the polygon
SetLength(MyPolygon, );
MyPolygon[] := p1;
MyPolygon[] := p2;
MyPolygon[] := p3;
MyPolygon[] := p4;
MyPolygon[] := p5;
MyPolygon[] := p6;
Image1.Bitmap.Canvas.BeginScene;
// draws the polygon on the canvas
Image1.Bitmap.Canvas.DrawPolygon(MyPolygon, );
Image1.Bitmap.Canvas.EndScene;
end;

TPointF

TPointF = record
class function Create(const AX, AY: Single): TPointF; overload; static; inline;
class function Create(const APoint: TPoint): TPointF; overload; static; inline;
class operator Add(const APoint1, APoint2: TPointF): TPointF;
class operator Subtract(const APoint1, APoint2: TPointF): TPointF;
class operator Equal(const APoint1, APoint2: TPointF): Boolean;
class operator NotEqual(const APoint1, APoint2: TPointF): Boolean;
class operator Implicit(const APoint: TPoint): TPointF;
class operator Negative(const APoint: TPointF): TPointF;
class operator Multiply(const APoint1, APoint2: TPointF): TPointF;
class operator Multiply(const APoint: TPointF; const AFactor: Single): TPointF;
class operator Multiply(const AFactor: Single; const APoint: TPointF): TPointF;
class operator Divide(const APoint: TPointF; const AFactor: Single): TPointF;
class function PointInCircle(const Point, Center: TPointF; const Radius: Integer): Boolean; static; inline;
class function Zero: TPointF; inline; static;
function Distance(const APoint: TPointF): Single;
function CrossProduct(const APoint: TPointF): Single;
function DotProduct(const APoint: TPointF): Single; inline;
procedure Offset(const APoint: TPointF); overload; inline;
procedure Offset(const ADeltaX, ADeltaY: Single); overload; inline;
procedure Offset(const APoint: TPoint); overload; inline;
procedure SetLocation(const X, Y: Single); overload; deprecated 'Use ":=" assignment instead';
procedure SetLocation(const P: TPointF); overload; deprecated 'Use ":=" assignment instead';
procedure SetLocation(const P: TPoint); overload; deprecated 'Use ":=" assignment instead';
function Subtract(const Point: TPointF): TPointF; overload; deprecated 'Use TPointF.Offset instead';
function Subtract(const Point: TPoint): TPointF; overload; deprecated 'Use TPointF.Offset instead';
function Add(const Point: TPointF): TPointF; overload; deprecated 'Use TPointF.Offset instead';
function Add(const Point: TPoint): TPointF; overload; deprecated 'Use TPointF.Offset instead';
function Scale(const AFactor: Single): TPointF; deprecated;
function EqualsTo(const Point: TPointF; const Epsilon: Single = ): Boolean;
function IsZero: Boolean;
function Ceiling: TPoint;
function Truncate: TPoint;
function Round: TPoint;
function SnapToPixel(const AScale: Single; const APlaceBetweenPixels: Boolean = True): TPointF;
function Normalize: TPointF;
function Length: Single;
function Rotate(const AAngle: Single): TPointF;
function Reflect(const APoint: TPointF): TPointF; inline;
function MidPoint(const APoint: TPointF): TPointF; inline;
function AngleCosine(const APoint: TPointF): Single;
function Angle(const APoint: TPointF): Single;
case Integer of
: (V: TPointFType;);
: (X: Single;
Y: Single;);
end;

FireMoneky 画图 Point 赋值的更多相关文章

  1. 关于FireMonkey TGrid赋值的一点小研究

    FireMoneky的TStringGrid用法和VCL里面的差不多, 但是另一个TGrid实在是奇葩, 几乎找不到给单元格赋值的方法(除了使用LiveBind) 看了其源码, 发现只要给某个Colu ...

  2. python网络画图——networkX

    networkX tutorial 绘制基本网络图 用matplotlib绘制网络图 基本流程: 1. 导入networkx,matplotlib包 2. 建立网络 3. 绘制网络 nx.draw() ...

  3. 一行代码设置TForm颜色的前世今生(属性赋值引起函数调用,然后发消息实现改变显示效果),TForm的初始颜色在dfm中设置了clBtnFace色

    来自万一的帖子:http://www.cnblogs.com/del/archive/2008/04/27/1173658.html的确做到了一行代码设置TForm控件的颜色(一点感想:Delphi程 ...

  4. cocos2dx3.2 画图方法小修改之 C++ final学习

    今天用cocos2dx 3.2版本号学习画图功能,       于是我重载Node 的draw方法.发现报错, watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQ ...

  5. 1.1.3-学习Opencv与MFC混合编程之---画图工具 通过对话框进行工具的参数设置 画曲线 绘图校正

    源代码:http://download.csdn.net/detail/nuptboyzhb/3961688 l 对话框 1.“插入”->“资源”->“对话框” 2.对话框属性如下: 双击 ...

  6. ffplay.c函数结构简单分析(画图)

    最近重温了一下FFplay的源代码.FFplay是FFmpeg项目提供的播放器示例.尽管FFplay只是一个简单的播放器示例,它的源代码的量也是不少的.之前看代码,主要是集中于某一个"点&q ...

  7. 描点的改进:运用chart画图。

    主要是利用Chart画图: 通过选中一部分曲线进行图像的放大和缩小,最小值为1格. 先计算最大值和最小差值.然后赋值给AxisY.Minimum 和AxisY.Maximum.x轴初始显示数目:Axi ...

  8. NET简单的一个画图程序

    using System; using System.Drawing; //HttpUtility.UrlEncode /// <summary> ///Curve 的摘要说明 /// & ...

  9. vue父组件异步传递prop到子组件echarts画图问题踩坑总结

    效果图: 大致思路:考虑到5张图都是折线图,所以准备用一个子组件承接echarts画图,然后父组件通过prop传递不同数据来展示不同的图 踩坑问题: 1.引入line子组件,画了5个元素,但是只显示一 ...

随机推荐

  1. charles工具过滤腾讯视频播放器广告

    Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当程序连接Charles的代理访问互联网时,Charles可以监控这个程序发送和接收的所有数据.它允许一个开发者查看所有连接互联 ...

  2. [转] oracle 监听

    oracle 监听 启动监听:lsnrctl start 查看监听:lsnrctl status 停止监听:lsnrctl stop 1.oracle 数据服务器包括:实例进程和数据库: 实例进程包括 ...

  3. 51nod1289 stack

    1289 大鱼吃小鱼 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动 ...

  4. iOS UI-应用管理(使用Cell模板)

    一.Model // // BWApp.h // IOS_0112_应用管理 // // Created by ma c on 16/1/12. // Copyright (c) 2016年 博文科技 ...

  5. SGU 156 Strange Graph 欧拉回路,思路,汉密尔顿回路 难度:3

    http://acm.sgu.ru/problem.php?contest=0&problem=156 这道题有两种点 1. 度数>2 在团中的点,一定连接一个度数为2的点 2. 度数等 ...

  6. istringstream、ostringstream、stringstream类介绍

    本文转载自: http://www.cnblogs.com/gamesky/archive/2013/01/09/2852356.html 一.C++的输入输出分为三种: (1)基于控制台的I/O ( ...

  7. Github使用.gitignore文件忽略不必要上传的文件 (转)

    原文地址: https://blog.csdn.net/gjy211/article/details/51607347 常用编程语言及各种框架平台下的通用   .gitignore   文件 http ...

  8. 创建一个新的进程os.fork

    import os pid = os.fork()功能:创建新的进程参数:无返回值:失败返回一个负数 成功:在原有进程中返回一个新的进程的PID号 在新的进程中返回0 *子进程会复制父进程全部代码段, ...

  9. Map排序(按key排序,按value排序)

    主要分两种,按键排序.按值排序. 而且,按key排序主要用于TreeMap,而按value排序则对于Map的子类们都适用. 一.按键排序 按Key排序主要用于TreeMap,可以实现按照Key值的大小 ...

  10. NET Core 实战:使用 NLog 将日志信息记录到 MongoDB

    NET Core 实战:使用 NLog 将日志信息记录到 MongoDB https://www.cnblogs.com/danvic712/p/10226557.html ASP.NET Core ...