社区
图形处理/算法
帖子详情
关于VC/MFC绘制正弦函数以及坐标显示的问题
xet869
2007-06-09 01:34:59
各位达人,我先把感谢的话说在前头,这是老师给的一道大作业,我已经焦头烂额了,如果有哪位高手帮小女子,万分感激啊~~~~~
编写一个单文档应用程序,程序运行后,在视图窗口中显示一条正弦曲线。当鼠标指向该曲线上的点时,在状态栏中显示点的坐标,否则显示“非线上点”的文本提示信息。
过程详细点最好不过了,因为偶是学数学的,计算机方面不开窍的,THX.
...全文
1343
8
打赏
收藏
关于VC/MFC绘制正弦函数以及坐标显示的问题
各位达人,我先把感谢的话说在前头,这是老师给的一道大作业,我已经焦头烂额了,如果有哪位高手帮小女子,万分感激啊~~~~~ 编写一个单文档应用程序,程序运行后,在视图窗口中显示一条正弦曲线。当鼠标指向该曲线上的点时,在状态栏中显示点的坐标,否则显示“非线上点”的文本提示信息。 过程详细点最好不过了,因为偶是学数学的,计算机方面不开窍的,THX.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Y___Y
2007-06-26
打赏
举报
回复
/////////////////////画曲线函数////////////////////////////
////////////////////直角坐标下的////////////////////////
//y=fun(x)
//p---绘图设备指针
//fun---函数指针
//StartP1---x的起始值
//StartP2---x的终止值
//PX---坐标原点x方向位置
//PY---坐标原点y方向位置
//Mx---x方向放大倍数
//My---y方向放大倍数
/////////////////////////////////////////////////////////
void DrawCurve(HDC hDC,double (*fun)(double),double StartP1,double EndP1,int PX,int PY,double Mx,double My)
{
int i,N=int(Mx*(EndP1-StartP1));
double x,y,dx;
dx=(EndP1-StartP1)/N;
x=StartP1;
y=(*fun)(x);
MoveToEx(hDC,PX+int(x*Mx),PY-int(y*My),NULL);
for(i=1;i<=N;i++)
{
x=StartP1+i*dx;
y=(*fun)(x);
LineTo(hDC,PX+int(x*Mx),PY-int(y*My));
}
}
////////////////////任意坐标下的////////////////////////
void DrawCurve(HDC hDC,double (*funX)(double),double (*funY)(double),double StartT,double EndT,int PX,int PY,double M)
{
int i,N=int(M*(EndT-StartT));
double t,x,y,dt;
dt=(EndT-StartT)/N;
t=StartT;
x=(*funX)(t);
y=(*funY)(t);
MoveToEx(hDC,PX+int(x*M),PY-int(y*M),NULL);
for(i=1;i<=N;i++)
{
t=StartT+i*dt;
x=(*funX)(t);
y=(*funY)(t);
LineTo(hDC,PX+int(x*M),PY-int(y*M));
}
}
bondyxie
2007-06-26
打赏
举报
回复
楼上所说的都不行,没有理解实质.
里边是要处理坐标映射的.
我所知道的就这些,因为我也尝试过做这个东西,可没有成功.
「已注销」
2007-06-10
打赏
举报
回复
这样做:
获取鼠标的X,Y坐标,然后把X坐标代入你的曲线,算出来一个Y,看这个Y跟你的鼠标当前Y是否相等,如果相等,就是在上面,否则不是
在BUTTONDOWN事件中处理
xet869
2007-06-09
打赏
举报
回复
我是VC++的作业呀,帅哥你让我用MATLAB,那我老师不郁闷死?
cpio
2007-06-09
打赏
举报
回复
用Matlab吧,似乎简单得多
xet869
2007-06-09
打赏
举报
回复
楼上的达人,能不能再详细点,3q
老廉颇尚能饭否
2007-06-09
打赏
举报
回复
画线的用SetPixel就可以了,然后添加鼠标事件OnMouseMove(),用
CPoint curPoint;
GetCursorPos(&curPoint);
可以获取鼠标位置,判断该点是否在曲线上,如果在曲线上,则在状态栏显示:
CMainFrame * pFrame = (CMainFrame *) AfxGetApp()->m_pMainWnd;
CStatusBar * pStatus = (CStatusBar *) &pFrame->m_wndStatusBar;
str.Format ("坐标 X=%i, Y=%i", curPoint.x, curPoint.y);
pStatus->SetPaneText(1, str);
长尾巴的悟空
2007-06-09
打赏
举报
回复
GetsystemMetrics()
使用
VC
++6.0
MFC
绘制
正弦
曲线
使用
VC
++6.0,编写的
MFC
程序,实现
正弦
曲线的
绘制
,包括横纵
坐标
轴的
绘制
。
OpenGL
绘制
三维
坐标
图
自制的基于
MFC
、OpenGL平台的三维
坐标
图程序,在
vc
2008编译通过
VC
#.NET+GDI+开发交互式CAD系统
本课程用
VC
#.NET结合GDI+,从无到有开发一个功能较完整的小型交互式CAD系统。作者有交互式CAD系统、动态几何系统开发经验。出版过交互式CAD系统开发方面的图书。课程先讲准备知识,然后讲整个系统的开发思路和主要技术,最后将整个系统分成8个版本,从最简单的绘图开始,逐步添加功能,循序渐进地进行讲解。知识点讲解细致,系统。课程的核心在于源代码,学习每章内容之前,请先下载本章源码。建议先自行对源码进行阅读分析,然后带着
问题
去听课,这样学习效率比较高,效果比较好一些。课程最终提供的内容和服务:PPT+源码+视频讲解+持续升级/****课程第一节课为免费课,演示了系统的主要功能。可以用手机或电脑观看。如果无法观看,请私信我。谢谢!*****/友情提醒:凭订单信息可找平台客服开具发票。购买系列课程提供打包价,购买讲师卡更划算。
MFC
GDI绘图基础
一.关于GDI的基本概念 什么是GDI? Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics Device Interface)将图形
绘制
在
显示
器上。 在Windows操作系统中,动态链接库C:/WINDOWS/system32/gdi32.dll(GDI Client DLL)中定义了GDI
函数
,实现与设备无关的包括屏幕上输出像素、在打印机上输出硬拷贝以及
绘制
Windows用户界面功能。在Visual C++6.0中的头文件C:/Program Files/Microsoft Visual Studio/
VC
98/Include/wingdi.h和Visual Studio 2005中的头文件C:/Program Files/Microsoft Visual Studio 8/
VC
/PlatformSDK/Include/WinGDI.h是访问gdi32.dll库文件的钥匙。下面我们大致浏览一下wingdi.h(included in Windows.h)头文件: /* Bitmap Header Definition */定义了BITMAP位图结构 /* Mapping Modes */定义了DC中的
坐标
映射方式,包括以下常用
函数
: SetMapMode、SetViewportExtEx、SetViewportOrgEx、 SetWindowExtEx 、SetWindowOrgEx。
利用
VC
绘制
三维房子
利用
VC
实现了可随视点变化而不断旋转的三维房子
图形处理/算法
19,468
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章