用Qt 画一个心形
MainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H #include <QMainWindow>
#include <QTimer> class MainWindow : public QMainWindow
{
Q_OBJECT public:
MainWindow(QWidget *parent = );
~MainWindow(); void timerEvent(QTimerEvent *);
void paintEvent(QPaintEvent *event); private:
int m_x,m_y;
int m_k;
float m_t;
}; #endif // MAINWINDOW_H
MainWindow.cpp
#include "mainwindow.h"
#include <QDebug>
#include <math.h>
#include <QPainter> MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
this->setFixedSize(,);
m_k = ;
m_t = ;
startTimer(); } MainWindow::~MainWindow()
{ } void MainWindow::timerEvent(QTimerEvent *)
{
qDebug() << "timer event " << m_t;
if (m_t > )
{
update();
m_t = ;
}
m_x = * m_k * sin(m_k*m_t)*sin(m_k*m_t)*sin(m_k*m_t);
m_y = * m_k * cos(m_k*m_t) - * m_k * cos( * m_k * m_t) - * m_k * cos( * m_k * m_t) - cos( * m_k * m_t);
m_x += this->width() / ;
m_y -= this->height() / ;
m_y *= -;
update(m_x,m_y,,); m_t += 0.1;
} #if 1
void MainWindow::paintEvent(QPaintEvent *event)
{
qDebug() << "paintEvent " << m_x << " " << m_y;
QPainter painter(this);
painter.setPen(Qt::red);
painter.drawPoint(m_x, m_y);
}
#else
void MainWindow::paintEvent(QPaintEvent *event)
{
double k = ;
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
QColor my_color(, , , );
QBrush my_brush(my_color);
painter.setPen(Qt::red);
/*painter.setBrush(my_brush);*/
painter.translate(this->width()/, this->height()/);
QPainterPath polygonPath;
polygonPath.setFillRule(Qt::WindingFill);
float x = * k * sin(0.0)*sin(0.0)*sin(0.0);
float y = * k * cos(0.0) - * k*cos(0.0) - * k*cos(0.0) - cos(0.0);
polygonPath.moveTo(x, -y);
for (double t = 0.01; t < ; t += 0.05)
{
x = * k * sin(k*t)*sin(k*t)*sin(k*t);
y = * k * cos(k*t) - * k * cos( * k * t) - * k * cos( * k * t) - cos( * k * t);
polygonPath.lineTo(x, -y);
#if 0
painter.drawPoint(x,-y);
painter.drawLine(,,x,-y);
painter.drawLine(,,x+,-y);
#endif
}
painter.drawPath(polygonPath);
}
#endif
用Qt 画一个心形的更多相关文章
- 【Python】画一个心形
#!/usr/bin/env python # -*- coding:utf-8 -*- import turtle import time # 画心形圆弧 def hart_arc(): for i ...
- 用C语言画一个心
用C语言图形库画一个心 --环家伟 这次我教大家用代码画一个心,这样你们就可以送给你们的女(男)朋友了.没找到对象的也可以用来表白啊. 1.首先,我去百度找了心形线的函数,如下: 2. 联系高中的数 ...
- python画出心形图
程序员表达爱的方式真是多种多样.比如,用python来画一个心型,献给梦中的情人,代码如下: from turtle import * pensize(1) pencolor('red') fillc ...
- CSS 画一个心
效果图: 实现原理: 可以把这个心分为两部分,两个长方形,分别设置 border-radius,transform: rotate() . 设置属性之后 再次添加一个,设置相反的 rotate 设置其 ...
- 画一个心送给心爱的小姐姐,Python绘图库Turtle
Python绘图库Turtle Turtle介绍 Turtle是Python内嵌的绘制线.圆以及其他形状(包括文本)的图形模块. 一个Turtle实际上是一个对象,在导入Turtle模块时,就创建了对 ...
- python小趣味_520绘制一个心形.
从某个公众号上看到的. 跑了一下, 居然可以成功运行. 有心的话可以研究下代码. 利用了turtle模块 #!/usr/bin/env python # coding:utf-8 import tur ...
- Android中利用画图类和线程画出闪烁的心形
本文讲解主要涉及的知识点: 1.线程控制 2.画图类 3.心形函数 大家先看图片: <ig ...
- CSS3制作心形头像
1.功能需求: 最近有一个基于微信开发的Mobile Web项目,是一个活动页面.功能需求:用户使用微信扫描二维码,然后授权使用微信登录,然后读取用户的昵称和头像,然后显示在一个饼图上面.头像需要有一 ...
- CorelDRAW快速制作绚丽的彩色透明心形
今天小编分享给小伙伴们用CorelDRAW打造绚丽的彩色透明心形.主要使用完美形状组中的心形造型制作出心形图案,经过对图形的模糊操作,再经过图框精确剪裁,最后添加一个彩虹渐变色实现绚丽的彩色透明效果. ...
随机推荐
- Druid基本配置
最近公司要用Druid 所以看了下基本配置及配置过程中出现的问题 Druid是什么? Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时 ...
- 利用Python进行数据分析_Pandas_基本功能
申明:本系列文章是自己在学习<利用Python进行数据分析>这本书的过程中,为了方便后期自己巩固知识而整理. 第一 重新索引 Series的reindex方法 In [15]: obj = ...
- python 手机App数据抓取实战一
前言 当前手机使用成为互联网主流,每天手机App产生大量数据,学习爬虫的人也不能只会爬取网页数据,我们需要学习如何从手机 APP 中获取数据,本文就以豆果美食为例,讲诉爬取手机App的流程 环境准备 ...
- TIM—基本定时器代码
使用目的:使用TIM定时器让小灯每0.5秒翻转一次亮灭 编程过程: 1-配置时基初始化结构体 2-开启定时器更新中断(即定时时间到了) 3-配置中断优先级 4-使能定时器 5-编写中断服务函数 6-编 ...
- 2019版UI学习路线(含大纲+视频+工具+网盘+面试题)
2019最新UI设计师教程(学习路线+课程大纲+视频教程+面试题+学习工具) 什么是全链路UI设计 UI设计师是随着网络而兴起的新兴设计行业,从事对软件的人机交互.操作逻辑.界面美观的整体设计工作.涉 ...
- CentOS7离线安装Nginx(详细安装过程)
CentOS7离线安装Nginx(详细安装过程) 1.安装gcc.g++ 下载好所需的文件后上传至服务器(下载地址:https://download.csdn.net/download/a729360 ...
- Jfinal初次尝试及Jetty使用相关问题
Jetty介绍 Jetty官网:http://www.eclipse.org/jetty/ 参考:Jetty使用教程(一)--开始使用Jetty 1. 使用 参考上面文档,但是有些更新: echo $ ...
- 作业16:java枚举类的秘密
JAVA代码 public enum EnumTest { HELLO,WORLD } 字节码 public final class EnumTest extends java.lang.Enum&l ...
- ActivityMQ消息中间件【待完成】
1,MQ的引入 使用场景,将耗时的通知业务交给消息中间件[业务逻辑进行解耦] 使用消息中间件的逻辑交互 2,MQ的应用场景 首先消息中间件是一个异步处理 有两个关键点:①耗时:②业务的耦合度 案例1: ...
- Autofac 使用经验
慢慢总结 基础使用样例,在 Application_Start 中直接使用 //autofac注册 var builder = new ContainerBuilder(); //注册Controll ...