电脑作图软件有哪些,根据这个图用电脑软件求出函数关系

5848人阅读
MFC图像知识(13)
MFC基础知识(10)
& & & & 上一篇文章我们讲述MFC绘制图形的基本函数,包括绘制直线、绘制矩形、绘制椭圆及绘制文字,同时通过绕圆旋转和矩形平移简单的理解了图形学知识。这篇文章我将介绍鼠标响应和键盘响应,通过这些事件让学生实现一个类似画图的简单软件,同时充分发挥学生想象,自己创作东西。& & & & 前文:& & & &一. MFC工程创建及鼠标响应& & & & 新建一个MFC 单文档的应用程序&MousePic&。& & & & 然后,选择&View(视图)&-&&建立类向导&,快键键是Ctrl+W。这是MFC非常重要的一个知识点,对话框或单文档设置按钮操作、响应函数都是通过该操作实现。& & & & 在MFC ClassWizard中选择创建工程的&CMousePicView&类名,然后再&Message&中选择&WM_LBUTTONDOWN&,鼠标左键按下响应操作。同时,双击它添加函数OnLButtonDown()。& & & & 鼠标常见消息响应:& & & & WM_LBUTTONDBCLK 双击鼠标左键& & & & WM_LBUTTONDOWN 按下鼠标左键& & & & WM_LBUTTONUP 释放鼠标左键& & & & WM_MOUSEMOVE 在客户区移动鼠标& & & & WM_RBUTTONDBCLK 双击鼠标右键& & & & WM_RBUTTONDOWN 按下鼠标右键& & & & WM_RBUTTONUP 释放鼠标右键& & & &&二. MFC实现鼠标响应操作& & & & 1.鼠标左键按下& & & & 双击函数会定位到&MousePicView.cpp&文件,现在可以对OnLButtonDown()函数进行编辑。其中CPoint point参数记录当前鼠标左键按下的位置,nFlags表示掩码。& & & & 然后添加代码如下://定义一个点类型的变量,用来保存当用户点击界面时点击的位置
//鼠标左键按下
void CMousePicView::OnLButtonDown(UINT nFlags, CPoint point)
//把当前点击的点的位置赋给点m_point
CView::OnLButtonDown(nFlags, point);
& & & & 2.鼠标左键释放& & & & 通过同样的方法在&类向导&中实现鼠标左键释放函数,如下图所示。& & & & 添加代码主要是鼠标释放(弹起)://鼠标释放:记录当前坐标
void CMousePicView::OnLButtonUp(UINT nFlags, CPoint point)
//绘制图形
CDC *p = GetDC();
p-&MoveTo(m_point);
//鼠标移动到左键按下点
p-&LineTo(point);
//绘制一条直线 终点为鼠标释放点
CView::OnLButtonUp(nFlags, point);
& & & & 此时鼠标绘制图形如下所示,但是存在两个问题:绘制过程中不可见、绘制结果只是直线。& & & & 所以,需要借助鼠标移动函数实现,在鼠标移动过程中就进行绘制,同时引入bool类型的变量,判断鼠标按下或释放,按下的时候进行绘制操作。& & & & 3.鼠标左键移动& & & & 通过同样的方法在&类向导&中实现鼠标左键释放函数。& & & & 完整代码如下所示://定义一个点类型的变量,用来保存当用户点击界面时点击的位置
//定义布尔型变量 m_click=true表示鼠标点击 false表示鼠标释放
//鼠标左键按下
void CMousePicView::OnLButtonDown(UINT nFlags, CPoint point)
//把当前点击的点的位置赋给点m_point
CView::OnLButtonDown(nFlags, point);
//鼠标释放:记录当前坐标
void CMousePicView::OnLButtonUp(UINT nFlags, CPoint point)
//绘制图形
CDC *p = GetDC();
p-&MoveTo(m_point);
//鼠标移动到左键按下点
p-&LineTo(point);
//绘制一条直线 终点为鼠标释放点
CView::OnLButtonUp(nFlags, point);
//鼠标移动绘制图形
void CMousePicView::OnMouseMove(UINT nFlags, CPoint point)
//定义画笔并选择
CDC *p=GetDC();
CPen pen(PS_SOLID, 4, RGB(255,0,0));
p-&SelectObject(pen);
//鼠标按下进行绘制
if(m_click==true) {
p-&MoveTo(m_point);
p-&LineTo(point);
CView::OnMouseMove(nFlags, point);
}& & & & 绘制结果如下所示,相当于一个简单的画图软件。& & & & 4.补充知识& & & & 如果在OnMouseMove()鼠标移动函数if判断中缺少代码m_point = point,它会出现意想不到的效果,因为你需要每次绘制,鼠标移动当前点坐标point都需要赋值给下次绘制的起始坐标,供p-&MoveTo(m_point)使用。& & & & 同时,你可以绘制圆形、矩形等相关形状,不仅仅限定于直线。//鼠标移动绘制图形
void CMousePicView::OnMouseMove(UINT nFlags, CPoint point)
//定义画笔并选择
CDC *p=GetDC();
CPen pen(PS_SOLID, 1, RGB(255,0,0));
p-&SelectObject(pen);
//鼠标按下进行绘制
if(m_click==true) {
p-&MoveTo(m_point);
//p-&LineTo(point);
p-&Rectangle(point.x, point.y,point.x+20, point.y+30);
CView::OnMouseMove(nFlags, point);
& & & & 输出如下所示:& & & & 绘制中,定义了画笔Pen,正确的方法需要在绘制完成后,进行释放该画笔。核心代码如下: //定义画笔绘制矩形
CPen MyPen, *OldP
MyPen.CreatePen(PS_DASH, 2, RGB(0,0,255)); //虚线 粗2 蓝色
OldPen = pDC-&SelectObject(&MyPen);
//旧画笔赋值
//绘制图形
pDC-&SelectObject(OldPen);
MyPen.DeleteObject();
三. MFC键盘响应函数& & & & 1.基础知识& & & & Windows对每个按键定义了与设备无关的编码,这种编码叫做虚拟码。有了这个虚拟码,Windwos程序员可以使用该虚拟码进行编程。其中键盘上部分按键的虚拟码如下图所示:& & & & Windows按键消息常见如下:& & & & WM_CHAR 敲击键盘上的字符键时,产生该消息& & & & WM_KEYDOWN 任意键(包括字符键)被按下时都产生该消息,如果被按下的是字符键,在产生消息的同时还产生字符消息& & & & WM_KEYUP 任意角(包括字符键)被释放都产生该消息&& & & & WM_SYSKEYDOWN F10被按下或者Alt与另一个键被同时按下& & & & WM_SYSKEYUP F10被释放或者Alt与另一个键被同时释放& & & & 2.按键响应操作& & & & 同样,通过类向导建立按键按下函数。& & & & 然后添加如下代码,按下任意一个键,绘制的矩形向右平移40距离。//鼠标按键
void CMousePicView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
// TODO: Add your message handler code here and/or call default
CDC *p = GetDC();
p-&MoveTo(m_point);
//键盘按下
m_point.x += 40;
//水平平移40
p-&Rectangle(m_point.x, m_point.y, m_point.x+20, m_point.y+30);
CView::OnKeyDown(nChar, nRepCnt, nFlags);
& & & & 绘制图形如下所示:& & & & 3.响应不同键盘的操作& & & & 需要将UINT nChar转换为Char字符型,然后进行盘,WASD进行上下左右移动绘制椭圆。//鼠标按键
void CMousePicView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
// TODO: Add your message handler code here and/or call default
CDC *p = GetDC();
//当前被按下的字符
cChar = char(nChar);
//将按下的键转换为字符
//定义画笔
CPen MyPen, *OldP
MyPen.CreatePen(PS_DASH, 2, RGB(0,0,255));
//虚线 粗2 蓝色
OldPen = p-&SelectObject(&MyPen);
//旧画笔赋值
CBrush MyBrush, *OldB
MyBrush.CreateSolidBrush(RGB(0,255,0));
OldBrush = p-&SelectObject(&MyBrush);
if (cChar == 'D') {
p-&MoveTo(m_point);
m_point.x += 40;
//水平向右平移40
p-&Ellipse(m_point.x, m_point.y, m_point.x+20, m_point.y+40);
if (cChar == 'A') {
p-&MoveTo(m_point);
m_point.x -= 40;
//水平向左平移40
p-&Ellipse(m_point.x, m_point.y, m_point.x+20, m_point.y+40);
if (cChar == 'S') {
p-&MoveTo(m_point);
m_point.y += 50;
//竖直向下平移50
p-&Ellipse(m_point.x, m_point.y, m_point.x+20, m_point.y+40);
if (cChar == 'W') {
p-&MoveTo(m_point);
m_point.y -= 50;
//竖直向上平移50
p-&Ellipse(m_point.x, m_point.y, m_point.x+20, m_point.y+40);
p-&SelectObject(OldPen);
MyPen.DeleteObject();
p-&SelectObject(OldBrush);
MyBrush.DeleteObject();
CView::OnKeyDown(nChar, nRepCnt, nFlags);
}& & & & 绘制如下图所示:& & & & 4.按键光标选择//鼠标按键
void CMousePicView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
//光标操作
//当前被按下的字符
HCURSOR hCursor = 0;
//显示光标句柄
HCURSOR hPrevCursor = 0;
//以前的光标句柄
cChar = char(nChar);
//将按下的键转换为字符
if (cChar == 'A'){
//加载箭头光标
hCursor = AfxGetApp()-&LoadStandardCursor(IDC_ARROW);
if (cChar == 'B'){
//加载箭头光标
hCursor = AfxGetApp()-&LoadStandardCursor(IDC_IBEAM);
if (cChar == 'C'){
//加载箭头光标
hCursor = AfxGetApp()-&LoadStandardCursor(IDC_WAIT);
if (cChar == 'X'){
hCursor = AfxGetApp()-&LoadStandardCursor(IDC_ARROW);
hPrevCursor = SetCursor(hCursor);
if (hPrevCursor)
DestroyCursor(hPrevCursor);
if (hCursor){
hPrevCursor = SetCursor(hCursor);
if (hPrevCursor)
DestroyCursor(hPrevCursor);
CView::OnKeyDown(nChar, nRepCnt, nFlags);
四. MFC鼠标绘制-学生作业展示& & & & 最后展示学生做的成果,虽然代码非常简单,原理也很简单,但是学生做得真的挺好的,原来编程还可以这样上啊,一方面提升学生的学习兴趣,另一方面增加他们的编程能力。&&&&&&&& && & & & 还是那句话,非常佩服学生的创造力及想象力吧!而且编程课原来可以这么进行,提升学生的编程能力的同时也培养了学生的兴趣。希望文章对你有所帮助~& & & &&(By:Eastmount
半夜2点半&&)
访问:2323382次
积分:21582
排名:第413名
原创:269篇
转载:10篇
评论:1651条
作者:杨秀璋
学历:本科-北京理工大学
&&&&&&&&&&&硕士-北京理工大学
现任教于贵财财经大学信息学院
简介:自幼受贵州大山的熏陶,养成了诚实质朴的性格。经过寒窗苦读,考入BIT,为完成自己的教师梦,放弃IT、航天等工作,成为贵财一名大学教师,并想把自己所学所感真心传授给自己的学生,帮助更多陌生人。
贵州纵美路迢迢,
为负劳心此一遭。
收得破书三四本,
也堪将去教尔曹。
娜美人生,醉美生活。
他和她经历风雨,慢慢变老。
文章:13篇
阅读:121311
文章:12篇
阅读:87147
文章:44篇
阅读:492402
文章:35篇
阅读:447062
文章:18篇
阅读:193941
文章:12篇
阅读:91080
文章:19篇
阅读:176815
文章:16篇
阅读:120674
文章:20篇
阅读:158838
文章:13篇
阅读:110469
(3)(4)(2)(3)(2)(1)(1)(4)(3)(2)(4)(11)(2)(1)(2)(10)(9)(5)(3)(3)(2)(3)(4)(2)(3)(5)(5)(6)(11)(20)(6)(3)(5)(13)(5)(7)(7)(5)(7)(8)(9)(3)(2)(1)(1)(6)(3)(6)(5)(7)(1)(1)(1)(10)(4)(6)(3)(4)(2)(2)
【算法知识】
【C# .NET】
【游戏开发】
【Android】
【正能量&导师】
【图形&视频处理】
【各种知识】
【数据挖掘】
【.NET MF&嵌入式】
【架构&模式】
【操作系统】
【IOS开发】
【CSDN扫地僧】函数图像绘制软件|MathGV(函数绘制软件)4.1 绿色免费版-东坡下载
东坡下载:内容最丰富最安全的下载站!
→ MathGV(函数绘制软件) 4.1 绿色免费版
数学中我们经常接触到函数,今天东坡小编介绍一款简单易用的电脑函数绘制工具――MathGV,它能画2D、3D和坐标等函数图,还能完美支持一维函数、二维函数,功能非常强大,能在窗口中滚动显示,或是复制到其它文件中也可插入标签,有需要的快拿走吧!MathGV功能特色MathGV是一款绿色软件,解压后即可使用(直接运行其中的Mathgv.exe即可)。主界面极为简洁,分成菜单栏、工具栏、绘图区、状态栏四部分。1. 菜单栏这里有File(文件)、Graph(图形)、Tools(工具)、Windows(窗口)、Help(帮助)五个基本菜单列,但如果你从File或工具栏中选择了不同的函数后,菜单列的数量会发生相应变化。2. 工具栏默认情况下只显示一个Graph Tool Bar(图形工具条)工具栏,从左至右依次是二维直角坐标图、极坐标图、三维直角坐标图、打开文件、保存文件、函数图居中、位图居中、放大、缩小等绘图工具。从“Windows”菜单下选择“Show/Hide Label Tool Bar”后,还可以显示一个包含了多个工具的Label Tool Bar工具栏,为了作图方便,建议打开为好。3. 绘图区这就是我们绘图的区域,函数图像就显示在这里。4.状态栏该栏中有原点坐标和鼠标所在位置的坐标值以及坐标放大的倍数。MathGV怎么用使用方法快速绘制函数图像:在MathGV中绘制函数图像并不复杂,这里笔者以绘制y=sinx+cosx的图像为例,介绍一下主要的操作步骤。第一步:创建二维图根据所绘制函数图像的类型选择创建函数图像,例如一维函数、二维函数、三维函数、极坐标图像等,这里我们选择二维直角坐标图,然后就会看到如图1所示的包含二维直角坐标小窗口的主界面。第二步:添加二维函数这时,你会看到菜单中已经多出来了Function、Label两个菜单列,接着从“Funceion”菜单列中执行“New 2D Function(定义函数)”命令添加一个新的二维函数,在“Function Definition”小节下输入“sin(x)+cos(x)”这个表达式。如果函数表达式中有×、÷、θ、π等符号时,请分别用*、/、Theta、Pi来表示。假如函数的变量有取值范围,那么我们还应该在“Lower Bound(Optitional)”和“Upper Bound(Optitional)”中分别输入相应的数值(一般情况下不用去管它)。然后点击“OK”按钮,就会看到如图2所示的函数图像了。如果你对函数图像的显示效果不太满意,可以利用工具栏中的按钮进行调节、缩放,或者为函数图像添加一个标签说明。第三步:保存函数图像到此为止,函数图像已经绘制完毕,你可以从“File”菜单下选择“Save As Picture File”命令将它保存为一个BMP或JPG格式的文件。
安卓官方手机版
IOS官方手机版
MathGV(函数绘制软件)截图
MathGV(函数绘制软件) 4.1 绿色免费版
本类最新软件
本类软件推荐
3.1M / 08-09 / 7.8绿色免费版
314.9M / 07-30 / 3.7.2官方中文版下载【附完整教程】
15.4M / 07-28 / 5.4.1.41官方最新版
16.7M / 07-20 / 2017R7官方最新版
22.1M / 07-19 / 1.13.6 官网绿色版【32位/64位】
本类软件排行
本类软件必备
ps美图制图截图
请简要描述您遇到的错误,我们将尽快予以修正。
轮坛转帖HTML方式
轮坛转帖UBB方式求用电脑画图,求个专业的软件,或者说画图板之类的,最好有详细的教学。大神们帮帮忙- _星空网购
你现在的位置:& > &
求用电脑画图,求个专业的软件,或者说画图板之类的,最好有详细的教学。大神们帮帮忙
相关参考:
电脑画图什么软件最好……
paintrt是专业平面绘画手绘软件 PHOTOSHOP是专业平面绘画制作软件 再给你个超级无敌的A...用电脑自带的画图软件怎么改变背景颜色……
切换颜色: 1.在画图程序界面右上方有颜色狂,点击选择需要的颜色应用即可。 切换底色: 2.点击程序...求推荐专业绘画软件,像电脑上的(画图)一样……
Corel Painter 是目前世界上最为完善的电脑美术绘画软件如何用电脑画图?怎么画?用什么软件?……
Photoshop 和 Coredraw ,比较专业的,能画出很nice的图案,简单的用美图秀秀就可...用绘图软件的电脑配置要求……
内存一个4G DDR3 出头 弄个8G不是难事 ,再就是专业显卡了, ...更多关于...经常用cdr ps 等作图软件 需求一台专业画图电脑 ,求配置?最高 与最低……
没有最低与最高之分,不是特别旧的电脑都能运行起这两个软件,只是速度的问题了,我家用的是以下配置,CD...用平板电脑画图求软件……
SketchBook 这是我用过最好用的绘画软件,可以试试!望采纳。求一个电脑数学画图软件……
专业的用MATLAB 一般需求Excel就能搞定求origin专业绘图软件下载包及破解文件,有哪位朋友可以帮忙的!!!!!!!……
你好,这个是origin8.0的破解版给你上传了,里面的crack文件夹是破解文件,readme.....想组装台电脑,用于运行广联达软件及CAD画图,求一个配置。谢谢!……
i3 6100 散片620元 散热超频三60元 主板华擎b150m 430元 内存威刚8g ddr4...
相关分享 :
Corel Painter 是目前世界上最为完善的电脑美术绘画软件 :
图像处理+绘画:Photoshop【简称PS】 专业绘画软件:Painter【简称PT】 黑白漫画软... :
专业的用MATLAB 一般需求Excel就能搞定 :
内存一个4G DDR3 出头 弄个8G不是难事 ,再就是专业显卡了, ...更多关于... :
没有最低与最高之分,不是特别旧的电脑都能运行起这两个软件,只是速度的问题了,我家用的是以下配置,CD... :
一、专业绘图对显卡要求很高,定位显卡中高端,这类的显卡有:GTX950M、GTX960M、GTX96... :
SketchBook 这是我用过最好用的绘画软件,可以试试!望采纳。 :
如果你是 微软系统 选择 photoshop 5.0 ,现在免费了 ,,如果你是 linux 系统 ... :
电脑绘图软件有很多,在百度上搜索,根据自己需要选择下载安装即可。The requested URL '/xueask-3.html' was not found on this server.}

我要回帖

更多关于 电脑作图软件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信