热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Flutter画笔(Paint)、绘制直线(drawLine)

先正确的评判自己,才有能力评断他人。你是否欺骗别人,或是自己?想清楚再回答。三思而后行的人,很少会做错事情。企图说服不用大脑

先正确的评判自己,才有能力评断他人。
你是否欺骗别人,或是自己?想清楚再回答。
三思而后行的人,很少会做错事情。
企图说服不用大脑的人,是徒劳无功。
认为整个世界都错的人,极可能错在自己。 


drawLine(绘制直线)

 

drawLine(Offset p1, Offset p2, Paint paint)

Offset【off 开始或结束的意思;set 设置、设定的意思】

p1:绘制开始坐标【相对于原点  [0,0] 的偏移量】

p2:绘制结束坐标【相对于原点  [0,0] 的偏移量】

paint:画笔


isAntiAlias是否抗锯齿(bool)
strokeWidth画笔宽度 (double)
color画笔颜色(Color)
strokeCap延伸绘制(画 冒)
invertColors转换颜色值(二进制补码)

 


isAntiAlias=false(保留锯齿)


CustomPaint(size: Size(300, 300), //指定画布大小painter: MyPainter(),),

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = false..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/d8b9b34ac18fe9c3.png" />   

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = false..strokeisAntiAlias%3Dtrue%EF%BC%88%E6%B6%88%E9%99%A4%E9%94%AF%E9%BD%BF%EF%BC%89">isAntiAlias=true(消除锯齿)

    

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..strokestrokeWidth%EF%BC%88%E7%94%BB%E7%AC%94%E5%AE%BD%E5%BA%A6%EF%BC%89">strokeWidth(画笔宽度)

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..color = Colors.red;canvas.drawLine(Offset(50.0, 46.0), Offset(200.0,46.0), paint..strokeCap..strokestrokeCap%EF%BC%88buff%E3%80%81round%E3%80%81square%EF%BC%89">strokeCap(buff、round、square)


StrokeCap.butt(无延伸)

(画笔绘制轮廓的边缘是平的,无延伸)buff_cap.png

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke%C2%A0StrokeCap.round%EF%BC%88%E4%B8%A4%E8%BE%B9%20%E3%80%81%E5%BB%B6%E4%BC%B8%E3%80%81%E5%8D%8A%E5%9C%86%EF%BC%89"> StrokeCap.round(两边 、延伸、半圆)

(画笔绘制的开始和结束轮廓都会扩展,扩展的直线距离为画笔宽度的一半,扩展为半圆)round_cap.png

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/ac9c57b8f3c16d0b.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..strokeStrokeCap.square%EF%BC%88%E4%B8%A4%E8%BE%B9%20%E3%80%81%E5%BB%B6%E4%BC%B8%E3%80%81%E5%8D%8A%E6%AD%A3%E6%96%B9%E5%BD%A2%5B%E9%95%BF%E6%96%B9%E5%BD%A2%5D%EF%BC%89">StrokeCap.square(两边 、延伸、半正方形[长方形])

(画笔绘制的开始和结束轮廓都会扩展,扩展的直线距离为画笔宽度的一半,扩展为半正方形)square_cap.png

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/7714b52ee80099f8.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/ab81126397248977.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/29b5fca9db8fa528.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/f1d2e11ec1c794cc.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/80a9ff9c1b5a8ccb.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/4257a894304b4efa.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/8511f58baf8a1fe3.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/dc66cf6c70968c36.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/11f9a3afa7080e38.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/e5829167caccdf4d.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/a26b022553532af4.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..stroke" src="https://img3.php1.cn/3cdc5/65b8/3b4/eef5383de9357582.png" />

class MyPainter extends CustomPainter {@overridevoid paint(Canvas canvas, Size size) {//画背景var paint = Paint()..isAntiAlias = true..strokeWidth=1.0..color=Colors.redAccent..invertColors=false;double rowLineCount=size.height/10.0;for(int i=0;i true;
}

 


推荐阅读
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • flutter图片缓存Flutter的图片缓存机制有问题(可能是我使用的版本1.12.13有问题)网络图片会默认缓存到本地,但是不管图片是不是完整的或者损坏的,导致页面在下次进入的 ... [详细]
  • 先上图引入插件在pubspec.yaml中引入charts_flutter插件使用的时候版本到0.6.0,插件地址:https:github.comgooglecharts使用插件 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 今日份分享:Flutter自定义之旋转木马
    今日份分享:Flutter自定义之旋转木马-先上图,带你回到童年时光:效果分析子布局按照圆形顺序放置且平分角度子布局旋转、支持手势滑动旋转、快速滑动抬手继续旋转、自动旋转支持X轴旋 ... [详细]
  • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
  • Matlab 中的一些小技巧(2)
    1.Ctrl+D打开子程序  在MATLAB的Editor中,将输入光标放到一个子程序名称中间,然后按Ctrl+D可以打开该子函数的m文件。当然这个子程序要在路径列表中(或在当前工作路径中)。实际上 ... [详细]
  • 注:根据Qt小神童的视频教程改编概论:利用最新的Qt5.1.1在windows下开发的一个小的时钟程序,有指针与表盘。1.Qtforwindows开发环境最新的Qt已经集 ... [详细]
  • Thisissuewasoriginallyopenedbyashashicorp/terraform#5664.Itwasmigratedhe ... [详细]
author-avatar
雅蕙蕙蕙
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有