首先创建可视化界面,建立窗体,运行程序,将处理水量等设计参数输入相应控件中.再建立计算和绘图模块.计算模块计算的数据校核成功后传给绘图模块.依据合理的尺寸数据进行绘制,并以 cad 图形的形式输出.最后用 vba 语句将模块和窗体连接,完成参数化绘图程序设计.。
3、在控件面板kol中放一个tkolform控件到窗体,这个控件和tform差不多的,保存并关闭当前工程。
3、在控件面板kol中放一个tkolform控件到窗体,这个控件 和tform差不多的,保存并关闭当前工程。
中间的消息处理过程就不说了,下面说一个窗体以及窗体上的控件的绘制显示过程.因为fmx窗体上的所有控件显示对象都是使用的窗体本身的设备场景句柄,所以我们要看他的绘制显示过程直接看上面的wndproc中的wm_paint消息就行了。
接下来要介绍的路径是 贝塞尔曲线 ,它可以是二次和三次方的形式,一般用于绘制复杂而有规律的形状。
private code[] savecode = new code[256]。
(4) 三次方程式贝塞尔曲线 cubic bezier curve(c):通过指定两个控制点来绘制由当前点到指定结束点间的三次方程贝塞尔曲线。
(5) 二次方程式贝塞尔曲线 quadratic bezier curve(q):通过指定的一个控制点来绘制由当前点到指定结束点间的二次方程贝塞尔曲线。
VS2005+ZedGraph 5.1.5 Winformrnrn我用下面的方法加了两条参考线rn[code=C#]rn private PointPairList lstStart1 = new PointPairList();rn private PointPairList lstStart2 = new PointPairList();rn private void draw()rn rn lstStart1.Add(5.00, 2.0);rn lstStart1.Add(9.00, 2.0);rn lstStart1.Add(9.00, 1.0);rn myCurve1 = myPane.AddCurve("Min", lstStart1, Color.Red, SymbolType.None);rnrn lstStart2.Add(5.00, 2.60);rn lstStart2.Add(9.00, 2.60);rn myCurve2 = myPane.AddCurve("Max", lstStart2, Color.Yellow, SymbolType.None);rn rnrn[/code]rnrn然后我用一个循环继续往图表里画线rn[code=C#]rn if (i , list1, Color.White, SymbolType.None);rn rn zedGraphControl1.GraphPane = myPane;rn zedGraphControl1.AxisChange();rn zedGraphControl1.Refresh();rn Application.DoEvents();rn rn rn[/code]rn问题如下:rnrn如果我最后不加myPane.CurveList.Clear();这句的话,绘制曲线会越来越慢(一个循环10毫秒),所以我想达到的要求是,当循环绘制的曲线超过10条的时候,清除最早的一条,也就是说图中只保留最新的10条曲线,但不能清除事先画好的参考线(清除了,重画也可以,但不能把所有曲线都一次清除了,要保留最新的10条)
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-90313-6.html
你是喝到肚子