easyx带笔锋的涂鸦板!

网上有人用easyx做的涂鸦板,大部分有以下几个问题:

  1. 笔记不连贯,速度快会断开
  2. 笔记粗细相同

这次,我写了一个新的涂鸦板,能够完美解决以上问题:

  1. 解决笔记不连贯:记录上一次的落笔位置,连接前后两点
  2. 解决笔记粗细相同:记录上一次的落笔位置,计算前后两点的距离。距离越长,书写速度越快;距离越短,书写速度越慢。根据书写速度越快的不同,计算笔记的宽度,从而形成笔锋。

话不多说,直接上代码

#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带笔锋的涂鸦板!相关推荐

  1. [转载]Qt涂鸦板程序图文详细教程..Qt涂鸦板程序图文详

    原文地址:Qt涂鸦板程序图文详细教程..Qt涂鸦板程序图文详细教程..作者:棰滈櫟鍚 Technorati 标签: QT http://www.yafeilinux.com/?p=379 (说明:这是 ...

  2. Canvas网页涂鸦板再次增强版

    目录 第一版Canvas涂鸦板 第二版Canvas涂鸦板 第三版Canvas涂鸦板 体验涂鸦板 第一版Canvas涂鸦板 实现功能:在涂鸦板上鼠标按下去拖动的涂鸦效果 实现思路:监听鼠标按下.移动.松 ...

  3. Android:自定义View实现签名带笔锋效果

    自定义签名工具相信大家都轻车熟路,通过监听屏幕onTouchEvent事件,分别在按下(ACTION_DOWN).抬起(ACTION_UP).移动(ACTION_MOVE) 动作中处理触碰点的收集和绘 ...

  4. 【Qt】2D绘图之涂鸦板

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 程序设计(基本功能) 04. 程序设计(放大功能) 05. 程序设计(放大功能) 06. 附录 01. 概述 结合前面所学 ...

  5. [Qt教程] 第17篇 2D绘图(七)涂鸦板

    [Qt教程] 第17篇 2D绘图(七)涂鸦板 楼主  发表于 2013-5-2 21:37:41 | 查看: 1255| 回复: 16 涂鸦板 版权声明 该文章原创于Qter开源社区(www.qter ...

  6. UI进阶--Quartz2D和触摸事件的简单使用:简易涂鸦板

    需求:实现一个简易的涂鸦板应用,使用鼠标在涂鸦板内拖动即可进行涂鸦,点击保存按钮,可以把完成的涂鸦保存,点击回退按钮可以向后退回一步,点击清空可以让涂鸦板清空. 实现步骤: 1.布局storyboar ...

  7. 开始新的blog之旅--flash3,0涂鸦板保存,撤销功能

    一直以来都是在百度写的博客,今天不知道百度是哪抽风.居然把我的博客给封了,上贴吧去发泄一番,结果帖子都给删了. 不得不说你百度厉害,你自己犯的错误.让我们这些用户跟着受罪.我看今天很多博客都被封了,都 ...

  8. H5小游戏 - canvas涂鸦板

    H5小游戏 - 涂鸦板 效果截图: html代码如下: <!DOCTYPE html> <html><head><meta charset="utf ...

  9. android 简易涂鸦板,canvas实现的简易涂鸦板效果

    用canvas实现的简易涂鸦板效果,用鼠标点击在画布上随意涂鸦 涂鸦 *{ margin: 0; padding: 0; } #canvas1{ box-shadow: 0 5px 40px blac ...

  10. Android应用开发实例篇(1)-----简易涂鸦板

    一.概述 这次要做一个简单的涂鸦板应用,以前在Qt上实现过,突然想到要把它在Android上实现,呵呵,既简单又有趣. 二.实现 新建工程MyWall,修改/res/layout/main.xml文件 ...

最新文章

  1. 粘包问题,以及在python中如何调用操作系统命令
  2. ML 自学者周刊:第 3 期
  3. 重写ScrollView实现两个ScrollView的同步滚动显示
  4. php 读取 stl 文件,科学网—[转载]【源码】读取ASCII STL文件的STLReader - 刘春静的博文...
  5. 11,EasyNetQ-调度事件与定时发布
  6. redis的持久化之RDB的配置和原理
  7. vim学习 07——跳转缩进
  8. 查看一个数是不是2的n次方
  9. VCSA 6.5 HA配置 之一:架构概览
  10. String s = new String(“abc“)创建了几个对象
  11. SQL中代替Like语句的另一种写法
  12. navicat11全系列破解教程
  13. 手机游戏开发如何正确选择设计分辨率
  14. win10系统让图片打开方式为照片查看器
  15. 学phyton第二天
  16. 设计模式学习(十七) 观察者模式 Observer
  17. OLED之U8g2中文库使用
  18. ceph搭建及使用详解
  19. Odoo免费开源信息化平台满足所有企业应用场景与需求
  20. 【源码】非常有用的Vml图像画板

热门文章

  1. ios游戏和android,20款最受好评的iOS和Android游戏
  2. 读入一句话(一行文本),统计26个大写字母各自出现的次数。(java)
  3. Talib.MAVP中的periods参数意义
  4. python高次方程求根公式,Python简单求解高阶方程的数值解
  5. openwrt路由表设置_OpenWrt路由器常用设置
  6. npm安装报错(npm ERR code EPERM npm ERR syscall mkdir npm ERR path CProgram Filesnodejsnode_ca...)
  7. 补间动画tween.js
  8. 函数连续性的无穷小定义
  9. L2+/L3级智能驾驶功能量产,为何说侧向补盲激光雷达是必备传感器?
  10. 压力表校验及压力变送器标定实验