用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打造绚丽的彩色透明心形.主要使用完美形状组中的心形造型制作出心形图案,经过对图形的模糊操作,再经过图框精确剪裁,最后添加一个彩虹渐变色实现绚丽的彩色透明效果. ...
随机推荐
- [转帖]一个关于国密SM4的故事
一个关于国密SM4的故事 https://www.cnblogs.com/ouyida3/p/10053862.html SM1 硬件SM2 非对称加密SM3 hash算法SM4 对称加密 一个关于国 ...
- 快速了解NIO
NIO的由来 我们都知道,在jdk1.4的时候就开始引入NIO了,它是基于Selector机制的非阻塞I/O,可以将多个异步的I/O操作集中到一个或几个线程中进行处理,目的就是为了代替阻塞I/O,提到 ...
- windows下编译libevent(2.1.8)及使用
一:获取libevent github地址:https://github.com/libevent/libevent/releases 下载2.1.8稳定版 二:编译libevent 我是用的visu ...
- 下载GDB调试工具peda
命令: 1.git clone https://github.com/longld/peda.git ~/peda 2.echo "source ~/peda/peda.py" & ...
- python笔记005-字符串-列表-元组
目录 1 上次作业补充拓展... 1 1.1 进制转换... 1 1.2 类型判断... 1 2 今日学习内容... 2 2.1 格式化输出... 2 2.2 基本运算符... 2 2.2.1 算术运 ...
- 使用寄存器点亮LED(第2节)—寄存器映射代码讲解
// 打开 GPIOB 端口的时钟 *( unsigned int * )0x40021018|= ( 1 << 4 ); // 配置PC2 IO口为通用推挽输出,速度为10M *( un ...
- 阿里云Centos7 搭建laravel
最近在考虑学习laravel框架,唔 现在服务器搭建一下. laravel是依赖composer的,首先在linux服务器下先安装composer.运行composer需要 php 5.3以上版本, ...
- impdp时报错ORA-39083&ORA-01917
转自:http://www.codes51.com/article/detail_146662.html impdp时报错ORA-39083&ORA-01917ORA-39083: 对象类型 ...
- undefined reference to `udev_device_get_action'
/usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/libusb-1.0.a(libusb_1_0_la-linux_udev.o): In ...
- BufferInputStream、BufferOutputStream、BufferedReader、BufferedWriter、Java代码使用BufferedReader和BufferedWriter实现文本文件的拷贝
BufferInputStream和BufferOutputStream的特点: 缓冲字节输入输出流,缓冲流是处理流,它不直接连接数据源/目的地,而是以一个字节流为参数,在节点流的基础上提供一些简单操 ...