MFC下实现图形学之Hermite、Bezier曲线的绘制

本文介绍了如何在MFC环境下实现Hermite和Bezier曲线的绘制。通过捕捉鼠标事件获取控制点,利用矩阵乘法计算曲线坐标,并根据用户在菜单中的选择绘制不同类型的曲线。当鼠标左键按下时,记录起点并限制光标移动;键盘按下清空画布;鼠标移动时显示临时连线;左键释放后根据选择绘制曲线。
摘要由CSDN通过智能技术生成

//*******************************************************
//捕捉鼠标左键按下消息,获得两个起始控制点的坐标
//*******************************************************
void CDrawCurvesView::OnLButtonDown(UINT nFlags, CPoint point)
{
 // TODO: Add your message handler code here and/or call default
 oldPoint = point;
 newPoint = point;
 CurveCtrlPoints[count++] = point;
 SetCapture();
 isLButtonDown = true;
 CRect rect;
    GetClientRect(&rect);
 ClientToScreen(&rect);  //用用户区坐标重新计算屏幕坐标
    ClipCursor(&rect);      //限制光标在用户区内
                            //默认处理,调用基类消息处理函数
    CView::OnLButtonDown(nFlags, point);
}
//******************************************
//按下键盘清除客户区的内容,为下次绘制作准备
//******************************************
void CDrawCurvesView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
 // TODO: Add your message

  • 2
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值