Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用CustomPainter绘制心形图

用CustomPainter绘制心形图
EN

Stack Overflow用户
提问于 2019-09-02 12:07:59
回答 1查看 2.4K关注 0票数 4

我想知道是否有人有任何关于如何开始使用CustomPainter绘制心形的建议。我已经画出了像三角形和正方形这样的东西,或者是一个基本的圆,但是心当然有直线和曲线。

我用这个画了一个三角形,看起来有点像一颗心,但不知道如何画出心所需的曲线。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Heart extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: CustomPaint(
        painter: TrianglePainter(
          strokeColor: Color(0xFFF27788),
          paintingStyle: PaintingStyle.fill,
        ),
        child: Container(
          height: 60 * Dep.hr,
          width: 60 * Dep.hr,
        ),
      ),
    );
  }
}

class TrianglePainter extends CustomPainter {
  final Color strokeColor;
  final PaintingStyle paintingStyle;
  final double strokeWidth;

  TrianglePainter({this.strokeColor, this.strokeWidth = 3, this.paintingStyle = PaintingStyle.stroke});

  @override
  void paint(Canvas canvas, Size size) {
    Paint paint = Paint()
      ..color = strokeColor
      ..strokeWidth = strokeWidth
      ..style = paintingStyle;

    canvas.drawPath(getTrianglePath(size.width, size.height), paint);
  }

  Path getTrianglePath(double x, double y) {
    return Path()
      ..moveTo(y, 0)
      ..lineTo(0, 0)
      ..lineTo(x / 2, y);
  }

  @override
  bool shouldRepaint(TrianglePainter oldDelegate) {
    return oldDelegate.strokeColor != strokeColor ||
        oldDelegate.paintingStyle != paintingStyle ||
        oldDelegate.strokeWidth != strokeWidth;
  }
}

此外,这只是一个颜色块,但我真的需要一个边界周围的形状。这是我的预期输出,不确定它是否是如意算盘。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-02 13:01:22

试试这个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  class HeartWidget extends StatefulWidget {
    @override
    _HeartWidgetState createState() => _HeartWidgetState();
  }

  class _HeartWidgetState extends State<HeartWidget> {
    @override
    Widget build(BuildContext context) {
      return Scaffold(
        appBar: AppBar(
          title: Text('Testing'),
        ),
        body: Center(
        child: CustomPaint(
            size: Size(70, 80),
            painter: HeartPainter(),
          ),
        ),
      );
    }
  }

  class HeartPainter extends CustomPainter {
    @override
    void paint(Canvas canvas, Size size) {
      // TODO: implement paint
      Paint paint = Paint();
      paint
        ..color = Colors.black
        ..style = PaintingStyle.stroke
        ..strokeCap = StrokeCap.round
        ..strokeWidth = 6;

      Paint paint1 = Paint();
      paint1
        ..color = Colors.red
        ..style = PaintingStyle.fill
        ..strokeWidth = 0;

      double width = size.width;
      double height = size.height;

      Path path = Path();
      path.moveTo(0.5 * width, height * 0.35);
      path.cubicTo(0.2 * width, height * 0.1, -0.25 * width, height * 0.6,
          0.5 * width, height);
      path.moveTo(0.5 * width, height * 0.35);
      path.cubicTo(0.8 * width, height * 0.1, 1.25 * width, height * 0.6,
          0.5 * width, height);

      canvas.drawPath(path, paint1);
      canvas.drawPath(path, paint);
    }

    @override
    bool shouldRepaint(CustomPainter oldDelegate) {
      return true;
    }
  }

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57756692

复制
相关文章
绘制动态心形图案::R语言绘制心形图
原始方程源于此贴一楼:直通车 整理修改后: 被窝修改成这样: x<-seq(-1.1,1.1,length = 3000) rep<-30 y<-matrix(,3000,rep) #创建矩阵 yx<-matrix(,3000,rep) #创建矩阵 xx<-matrix(,3000,rep) #创建矩阵 c<-seq(0,1,length=rep) #立体效果 for (i in 1:rep) for (p in 1:3000){ y[p,i]<-(1-(x[p])^2)^(1/2)+((x[p])^2
学到老
2018/03/16
4K0
绘制动态心形图案::R语言绘制心形图
程序心形曲线绘制_java输出心形图案
public class Demo extends JFrame implements Runnable {
全栈程序员站长
2022/11/03
1.2K0
Flutter:如何使用 CustomPaint 绘制心形
您可以在官方文档中找到有关 CustomPaint 小部件和 CustomPainter 类的更多详细信息:
徐建国
2021/10/18
1K0
Flutter:如何使用 CustomPaint 绘制心形
您可以在官方文档中找到有关 CustomPaint 小部件和 CustomPainter 类的更多详细信息:
徐建国
2021/11/30
1.2K0
Flutter:如何使用 CustomPaint 绘制心形
用php输出心形曲线
1 <?php 2 for($t=0;$t<360;$t++) 3 { 4 $y=2*cos($t)-cos(2*$t); //笛卡尔心形曲线函数 5 $x=2*sin($t
码缘
2019/09/11
2.4K0
用php输出心形曲线
用javafx框架tornadofx演示分形图的绘制
用到了kotlin 协程、带方法的枚举类等知识点 [fqy75r4fs5.gif] import javafx.beans.property.SimpleObjectProperty import javafx.geometry.Orientation import javafx.scene.canvas.Canvas import javafx.scene.canvas.GraphicsContext import javafx.scene.control.TextFormatter import jav
用户6167008
2019/10/14
8590
用javafx框架tornadofx演示分形图的绘制
如何用python画一个心形图_python画心形名字
Python可以使用turtle库来画爱心。 Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
全栈程序员站长
2022/10/04
1.1K0
matlab心形曲线代码_matlab心形
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/02
1.2K0
C# 绘制面形图
明志德道
2023/10/21
1730
C# 绘制面形图
用matlab绘制二元函数图像_心形函数表达式
在讲二元函数图像绘制之前,先讲解plot3与fplot3的实际用法,之后再讲解二元函数图像绘制,有需要的同学可直接跳转查看。
全栈程序员站长
2022/10/04
1.5K0
用matlab绘制二元函数图像_心形函数表达式
怎么用matlab画心形曲线方程,matlab画心形曲线「建议收藏」
Matlab 绘制三维动态心形 It’s OK to send a pic to…
全栈程序员站长
2022/11/03
1.8K0
心形模糊
算法:心形模糊是生成圆形模糊虚化遮罩,应用在对人脸(物体)检测后,进行人脸(物体)模糊虚化处理,通过适当的旋转、平移和缩放图像之后即可适当地遮住人脸(物体)。
裴来凡
2022/05/29
5100
心形模糊
numpy+matplotlib 绘制分形图
分形图形一般都有自相似性,这就是说如果将分形图形的局部不断放大并进行观察,将发现精细的结构,如果再放大,就会再度出现更精细的结构,可谓层出不穷,永无止境。
用户6021899
2019/11/27
1.1K0
numpy+matplotlib 绘制分形图
python动态心形代码简单_python 心形
网上有很多关于心形曲线的资料,各种各样的形状,但是我比较倾心于桃心形。先在Matlab里简单看一下是什么样的。
全栈程序员站长
2022/11/10
2.9K1
用python浪漫告白_python动态心形代码
大家好,又见面了,我是你们的朋友全栈君。 Python是一种面向他人进行的说明型编程方法,其源代码与说明器CPython遵守GPL协议,语法简洁清晰。那么,我们用少量的Python代码能做哪些有趣的东
全栈程序员站长
2022/11/08
9290
用python浪漫告白_python动态心形代码
python动态心形代码简单_python心形曲线代码
原文链接【Python】五分钟画一条动态心形曲线~​mp.weixin.qq.com
全栈程序员站长
2022/11/03
1.9K0
python动态心形代码简单_python心形曲线代码
笛卡尔心形函数图像_笛卡尔心形曲线
var cr = document.getElementById(“cardioid”);
全栈程序员站长
2022/11/19
6540
matlab画心形曲线_笛卡尔心形曲线方程
MATLAB 心形曲线 ---- 基本知识 clc;指令可以清除屏幕,所以你可以通过clc指令来清理屏幕 clc hold on;指令可以将画的图连起来 hold on clear;清除之前所留的定义 clear 笛卡尔爱心曲线 ezpolar('1-sin(t)') a=1; theta = 0 : 0.01 : 2 * pi; r = a*(1 - sin(theta)); polar(theta, r, '-r'); 特别定制 ---- 第一种实现方式 clear t=-pi:pi/10
全栈程序员站长
2022/11/02
1.1K0
简单画心形
❝520情人节快乐,Qt自绘画心形奉上给大家。 ❞ 源码 #define M_PI 3.14159265358979323846 // pi void Heart::paintEvent(QPain
Qt君
2020/05/25
1.2K0
简单画心形
点击加载更多

相似问题

用CustomPainter绘制斜椭圆颤振图

14

用QPainter绘制心电波形图

11

用WebGL语言绘制tensorflow.js图心

135

用递归绘制分形图

20

用形图绘制部分树枝

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文