easyx带笔锋的涂鸦板!
easyx带笔锋的涂鸦板!
网上有人用easyx做的涂鸦板,大部分有以下几个问题:
- 笔记不连贯,速度快会断开
- 笔记粗细相同
这次,我写了一个新的涂鸦板,能够完美解决以上问题:
- 解决笔记不连贯:记录上一次的落笔位置,连接前后两点
- 解决笔记粗细相同:记录上一次的落笔位置,计算前后两点的距离。距离越长,书写速度越快;距离越短,书写速度越慢。根据书写速度越快的不同,计算笔记的宽度,从而形成笔锋。
话不多说,直接上代码
#include <graphics.h>
#include <conio.h>
#include <cmath>#define key_down(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) //检测按键按下 double dis(int s1x, int s1y, int s2x, int s2y) { //两点之间的距离double a, b, c;a = abs(s1x - s2x);b = abs(s1y - s2y);c = sqrt(a * a + b * b);return c;
}MOUSEMSG m = GetMouseMsg(); //鼠标消息
int x = m.x, y = m.y; //上一次鼠标位置
int lastc = 1; //上一次两点距离
bool keydown = false; //上一次鼠标按下int main()
{initgraph(860, 640);setbkcolor(RGB(50, 50, 50));cleardevice(); //初始化窗口while (1){m = GetMouseMsg(); //获取一条鼠标消息if (key_down(VK_LBUTTON)) //鼠标点击{if (!keydown)x = m.x, y = m.y, keydown = true;//根据动笔速度确定笔锋if (dis(x, y, m.x, m.y) > lastc)lastc++;else lastc--;if (lastc < 1)lastc = 1;if (lastc > 25)lastc = 25;//绘制setlinestyle(PS_SOLID, lastc);setcolor(CYAN);line(m.x, m.y, x, y);x = m.x, y = m.y;} else keydown = false;}return 0;
}
运行效果
是不是很不错,喜欢就点个赞吧!
easyx带笔锋的涂鸦板!相关推荐
- [转载]Qt涂鸦板程序图文详细教程..Qt涂鸦板程序图文详
原文地址:Qt涂鸦板程序图文详细教程..Qt涂鸦板程序图文详细教程..作者:棰滈櫟鍚 Technorati 标签: QT http://www.yafeilinux.com/?p=379 (说明:这是 ...
- Canvas网页涂鸦板再次增强版
目录 第一版Canvas涂鸦板 第二版Canvas涂鸦板 第三版Canvas涂鸦板 体验涂鸦板 第一版Canvas涂鸦板 实现功能:在涂鸦板上鼠标按下去拖动的涂鸦效果 实现思路:监听鼠标按下.移动.松 ...
- Android:自定义View实现签名带笔锋效果
自定义签名工具相信大家都轻车熟路,通过监听屏幕onTouchEvent事件,分别在按下(ACTION_DOWN).抬起(ACTION_UP).移动(ACTION_MOVE) 动作中处理触碰点的收集和绘 ...
- 【Qt】2D绘图之涂鸦板
00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 程序设计(基本功能) 04. 程序设计(放大功能) 05. 程序设计(放大功能) 06. 附录 01. 概述 结合前面所学 ...
- [Qt教程] 第17篇 2D绘图(七)涂鸦板
[Qt教程] 第17篇 2D绘图(七)涂鸦板 楼主 发表于 2013-5-2 21:37:41 | 查看: 1255| 回复: 16 涂鸦板 版权声明 该文章原创于Qter开源社区(www.qter ...
- UI进阶--Quartz2D和触摸事件的简单使用:简易涂鸦板
需求:实现一个简易的涂鸦板应用,使用鼠标在涂鸦板内拖动即可进行涂鸦,点击保存按钮,可以把完成的涂鸦保存,点击回退按钮可以向后退回一步,点击清空可以让涂鸦板清空. 实现步骤: 1.布局storyboar ...
- 开始新的blog之旅--flash3,0涂鸦板保存,撤销功能
一直以来都是在百度写的博客,今天不知道百度是哪抽风.居然把我的博客给封了,上贴吧去发泄一番,结果帖子都给删了. 不得不说你百度厉害,你自己犯的错误.让我们这些用户跟着受罪.我看今天很多博客都被封了,都 ...
- H5小游戏 - canvas涂鸦板
H5小游戏 - 涂鸦板 效果截图: html代码如下: <!DOCTYPE html> <html><head><meta charset="utf ...
- android 简易涂鸦板,canvas实现的简易涂鸦板效果
用canvas实现的简易涂鸦板效果,用鼠标点击在画布上随意涂鸦 涂鸦 *{ margin: 0; padding: 0; } #canvas1{ box-shadow: 0 5px 40px blac ...
- Android应用开发实例篇(1)-----简易涂鸦板
一.概述 这次要做一个简单的涂鸦板应用,以前在Qt上实现过,突然想到要把它在Android上实现,呵呵,既简单又有趣. 二.实现 新建工程MyWall,修改/res/layout/main.xml文件 ...
最新文章
- 粘包问题,以及在python中如何调用操作系统命令
- ML 自学者周刊:第 3 期
- 重写ScrollView实现两个ScrollView的同步滚动显示
- php 读取 stl 文件,科学网—[转载]【源码】读取ASCII STL文件的STLReader - 刘春静的博文...
- 11,EasyNetQ-调度事件与定时发布
- redis的持久化之RDB的配置和原理
- vim学习 07——跳转缩进
- 查看一个数是不是2的n次方
- VCSA 6.5 HA配置 之一:架构概览
- String s = new String(“abc“)创建了几个对象
- SQL中代替Like语句的另一种写法
- navicat11全系列破解教程
- 手机游戏开发如何正确选择设计分辨率
- win10系统让图片打开方式为照片查看器
- 学phyton第二天
- 设计模式学习(十七) 观察者模式 Observer
- OLED之U8g2中文库使用
- ceph搭建及使用详解
- Odoo免费开源信息化平台满足所有企业应用场景与需求
- 【源码】非常有用的Vml图像画板
热门文章
- ios游戏和android,20款最受好评的iOS和Android游戏
- 读入一句话(一行文本),统计26个大写字母各自出现的次数。(java)
- Talib.MAVP中的periods参数意义
- python高次方程求根公式,Python简单求解高阶方程的数值解
- openwrt路由表设置_OpenWrt路由器常用设置
- npm安装报错(npm ERR code EPERM npm ERR syscall mkdir npm ERR path CProgram Filesnodejsnode_ca...)
- 补间动画tween.js
- 函数连续性的无穷小定义
- L2+/L3级智能驾驶功能量产,为何说侧向补盲激光雷达是必备传感器?
- 压力表校验及压力变送器标定实验