C#中如何在Windows窗体应用程序里画一个函数图像

爱珩珩 2014-12-27 03:51:14
各位大神,首先我说明一下,是需要一个在Windows窗体程序背景下,进行一个函数的绘制。老师让我去找GDI的教程,我找半天找不全,我现在把软件页面大致上给大神看一看,求给个指点。我是不大知道重画怎么画,要放一个什么按钮,然后点击事件里面要放什么代码,主函数里要放什么代码。


y1y2是我们自己输入的一个数字,代表因变量的范围,x1x2是图中相对应的自变量,我只是不知道怎么把这个图画出来。
求大神指导
...全文
1125 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zixingcheng_ 2014-12-29
  • 打赏
  • 举报
回复
可网上搜自定义曲线相关的源码,实质为一样的东西。 GDI建议晚点看,怕你会懵。
zixingcheng_ 2014-12-29
  • 打赏
  • 举报
回复
首要要确定你会这样几件事才能继续 会创建Bitmap不?会在Bitmap里绘制点、线、文字不?包括粗细、样式、颜色等?你要的东东都是一点点绘制出来的。 会了框架就出来了,剩余的就是你的函数曲线的绘制了。算法你会的调整公式为y=f(x),x有取值区间,就计算到了Y,当然x每次取值是有间隔的比如1,那么前后两次计算就能连成线,所有计算结果前后两两相连就是你要的曲线图,间隔越小曲线越精确,后续再看效果进行些平滑操作(提示所有点可以一次绘制为直线的,便于后期处理)
wycole 2014-12-27
  • 打赏
  • 举报
回复
[code=csharpusing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Paint(object sender, PaintEventArgs e) { if (a == 1) { Graphics g = this.CreateGraphics(); Pen pen1 = new Pen(Color.Blue, 2); float y = 150, y1, x1, x2; for (int x = 10; x < 1100; x++) { x1 = (float)x; x2 = (float)(x + 1); y1 = (float)(150 - 50 * Math.Sin((3.14159 / 180.0) * (x -9))); g.DrawLine(pen1, x1, y, x2, y1); y = y1; } System.Drawing.Drawing2D.AdjustableArrowCap linecap = new System.Drawing.Drawing2D.AdjustableArrowCap(6, 6, false); Pen pen2 = new Pen(Color.Blue, 3); pen2.CustomEndCap = linecap; g.DrawLine(pen2, 10, 300, 10, 0); g.DrawLine(pen2, 10, 150, 1120, 150); } } int a = 0; private void button1_Click(object sender, EventArgs e) { a = 1; //Invalidate(); } private void button2_Click(object sender, EventArgs e) { a = 0; Invalidate(); } } } ][/code] 这是一个画三角函数的程序,你参考一下
18_岁 2014-12-27
  • 打赏
  • 举报
回复
已知2点坐标求直线方程不是初中几何吗? 把你的绘图代码放在重绘按钮事件里 定义一个画板、画笔什么的画图
exception92 2014-12-27
  • 打赏
  • 举报
回复
老师让你去找GDI+的教程 是对的。 https://www.sssis.com/#safe=strict&q=winform+gdi%2B

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧