• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

如何快速简单的画大量“点”?

ssdjmcj8048 3M Cogent 研发部门经理  2003-12-03 12:46:32
吾需要画大量(不断的、经常的)的点,有什么快的方法?
我都没找到GDI+中的画点方法,吾太弱质!
...全文
28 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
tangyanjun1 2003-12-03
我觉得如果你想要快速的画大量的点的话,应该现在内存中建一块空间出来,现在这块内存上画好,然后再一次贴出来。因为在内存中画实线性操作,速度比在屏幕上画快多了,然后再线性输出到屏幕,速度也很快。
回复
Edelweissobject 2003-12-03
楼主,我觉首先你要考虑是画点规律,可以考虑用函数来实现点的坐标变化。
我看到的一个例子是画正弦曲线的。如下
protected override void DoPage(Graphics grfx,int cx,int cy)
{
PI=3.14159;
Poinf[] aptf[]=new PointF[cy]
for(int i=0;i<cx;i++)
{
aptf[i].X=i;
aptf[i].Y=cy/2*(1-(float)Math.Sin(i*2*Math.PI/(cx-1)));
}
grfx.DrawLines(Pens.Red,aptf);
}
回复
xiaodele 2003-12-03
对,虚线可以考虑
回复
SUEBING 2003-12-03
看你是用点干什么了
可以用虚线或者直线代替啊,别忘记,线是由点组成的
回复
rock1981 2003-12-03
大量不知道指的到底有多大!
正常画的话你可以做的双倍缓冲,
如果你的点是不断的、经常的话试试无语的DrawLines方法
回复
gOODiDEA 2003-12-03
可以试试g.DrawLine(myPen, 1, 1, 1, 1);
回复
colinfly 2003-12-03
你可以把第一行删掉,就可以看起来象你想象的那样,完整的程序想这个样子

System.Xml.XmlDocument oldDoc = new System.Xml.XmlDocument();
oldDoc.LoadXml("<root><Name value=\"gjdgdhg\"><fa gfd=\"hgkk\"></fa></Name></root>");


System.Xml.XmlDocument newDoc = new System.Xml.XmlDocument();
newDoc.LoadXml(oldDoc.DocumentElement.OuterXml);

System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.Xml.XmlTextWriter xw = new System.Xml.XmlTextWriter(new System.IO.StringWriter(sb));
xw.Formatting = System.Xml.Formatting.Indented;
xw.Indentation = 4;

newDoc.Save(xw);
string s= sb.ToString();
this.textBox1.Text =s.Substring(s.IndexOf( System.Environment.NewLine) + System.Environment.NewLine.Length);

结果是这个样子


<root>
<Name value="gjdgdhg">
<fa gfd="hgkk">
</fa>
</Name>
</root>
回复
liduke 2003-12-03
用分形几何的算法,点够多了
回复
binbin2000 2003-12-03
GDI+
回复
MFC2001 2003-12-03
you can use ControlPaint.DrawGrid Method.
回复
ssdjmcj8048 2003-12-03
首先,用DrawLine太慢,他的速度甚至会慢于FillRectangle,大家可以试试!
其次,我每次画的点并不多,但却可能频繁画,缓冲似乎也不合适!

还有什么办法?
回复
相关推荐
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2003-12-03 12:46
社区公告

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