学数学的时候看到书上的函数绘图 于是用MFC和GDI+ 实现了一个简单绘图程序

MFC 还是那么难用
GDI+ 就是为了抗锯齿

另外绘图的时候x轴与y轴的比例是不一样 真实比例画出来的图是很不和谐的

https://download.csdn.net/download/geforceno1/11149948

void CmyMathView::OnDraw(CDC* pDC)
{
    CmyMathDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    if (!pDoc)
        return;

Graphics graphics(pDC->m_hDC);

Gdiplus::Pen pen(Color(255, 0, 0, 255), 1);

RECT rect;
    GetClientRect(&rect);
    int w = rect.right;
    int h = rect.bottom;
    int w2 = rect.right / 2;
    int h2 = rect.bottom / 2;

graphics.SetSmoothingMode(SmoothingModeHighQuality);

CList<Gdiplus::Point> srcPoints;

for (float x = -w2; x < w2; x+=0.1f)
    {
        float y = x;
        
        switch (m_fType)
        {
        case 0:    y = x; break;
        case 1: y = pow(x, 2); break;
        case 2: y = 1 + 1 / x; break;
        case 3: y = 1 / x; break;
        case 4: y = sin(x); break;
        case 5: y = cos(x); break;
        }

if (m_fType == 0)
            srcPoints.AddTail(Gdiplus::Point(x + w2, (h2 - y)));
        else if (m_fType == 2)
            srcPoints.AddTail(Gdiplus::Point(x * 20 + w2, (h2 - y * 80)));
        else
            srcPoints.AddTail(Gdiplus::Point(x * 50 + w2, (h2 - y * 100)));
    }

Gdiplus::Point * points = new Gdiplus::Point[srcPoints.GetCount()];

POSITION position = srcPoints.GetHeadPosition();
    int index = 0;

while (position)
    {
        Gdiplus::Point & point = srcPoints.GetNext(position);

points[index].X = point.X;
        points[index].Y = point.Y;

index++;
    }

graphics.DrawCurve(&pen, points, srcPoints.GetCount());

delete[] points;

Gdiplus::Pen pen2(Color(255, 200, 200, 200), 1);

graphics.DrawLine(&pen2, Point(0, h2), Point(w, h2));
    graphics.DrawLine(&pen2, Point(w2, 0), Point(w2, h));
}

高等数学函数图像绘制相关推荐

  1. 【Python】函数图像绘制:二维图像、三维图像、散点图、心形图

    [Python]函数图像绘制:二维图像.三维图像.散点图.心形图 所有需要用的包 二维图像 三维图像 散点图绘制 心形图绘制 所有需要用的包 from mpl_toolkits.mplot3d imp ...

  2. 函数图像绘制python海龟库

    目录 前言 一.x,y轴绘制 1.代码展示 2.代码讲解 2.1 绘制坐标轴 2.2标箭头 2.3 写x,y轴标签 二.轴刻度绘制 1.代码展示 2.代码讲解 1.绘制轴刻度并标值 2.isdiv() ...

  3. matlab一般函数的绘制方法,基于MATLAB的函数图像绘制方法

    C DOI:10.16707~.cnki.fjpc.2017.01.084 E 晒 亍嚣 基于 MATLAB的函数图像绘制方法 张笑笑 一,童 键 z (1湖南省长沙市第一中学 湖南 长沙 410() ...

  4. 在Authorware中实现动态函数图像绘制的程序实现过程

    2019独角兽企业重金招聘Python工程师标准>>> 使用过由Macromadia公司出品的Authorware多媒体制作软件的设计师们,都应该会知道其实他是一款非常强大的功能全面 ...

  5. Origin | 自定义函数图像绘制

    文章目录 前言 一.图像绘制 二.图像调整 前言 我们常常会遇到一些函数,可利用Origin简单绘制出函数的曲线. 一.图像绘制 打开Origin软件:在上方工具栏点击绘图-函数图-新建2D函数图,此 ...

  6. python函数图像绘制、函数不固定_无法在函数中绘制tkinter图像

    我正在制作一个垄断游戏,我试图在画布上绘制图像,但它只有在功能不起作用的情况下才会起作用:def make_image(root, location, canvas): photo = PhotoIm ...

  7. python matplotlib函数_Python matplotlib 函数图像绘制

    简单圆 import numpy as np import matplotlib.pyplot as plt plt.figure() ax = plt.subplot() # 在0到2pi之间,均匀 ...

  8. python函数图像绘制

    1.实现 import matplotlib.pyplot as plt import math import numpy as npplt.figure(1)x=[] y=[]a=np.linspa ...

  9. 常用的函数图像绘制工具(网站)

    数字帝国-数学工具 https://zh.numberempire.com/

最新文章

  1. 牛客题霸 [ 求二叉树的层序遍历] C++题解/答案
  2. Vue使用axios无法读取data的解决办法
  3. java对csv格式的读写操作
  4. TURBOMAIL反垃圾邮件清洁工,还你一个清爽的邮箱
  5. Go 性能优化技巧 8/10 1
  6. 深度学习---之bias
  7. iPad和iPhone上的应用程序图标
  8. html快闪软件制作,教你如何用PPT轻松完成快闪视频制作?
  9. 弹簧设计计算软件简介
  10. chrome浏览器最小字体大小限制的解决方案
  11. win10系统CAJViewer 绿色提示缺少由于找不到 MSVCR71.dll
  12. OSPF协议介绍及配置
  13. 12月的第一天!给你一个11月回血指南!
  14. chromecast网络访问受限
  15. matlab存取面shp
  16. 使用D2D接口绘制图形
  17. 微信小程序发布动态页面模板
  18. Windows_U盘_SD卡_硬盘等存储介质无法完成格式化
  19. android 获取文件大小
  20. 光猫修改配置同步到服务器,光猫修改上报服务器地址

热门文章

  1. Knowledge representation learning with entity descriptions,hierarchical types, and textual relation
  2. [SSD固态硬盘技术 6] DRAM缓存技术详解
  3. 在 Laravel 5.1 中使用SMTP驱动实现邮件发送(含附件和图片)详细教程
  4. 薄膜表面检测仪帮助企业节省人力保障产品质量
  5. 操作系统的发展与兴衰史
  6. 无盘工作站 服务器 性能,无盘工作站和云服务器
  7. Flash实例教程:AS3.0实现逼真喷泉效果_Flash
  8. Git永久删除历史文件(包含历史记录)
  9. Oracle--同义词
  10. 0002 计算长方形周长和面积