sl 波浪线和锯齿线怎么画

AK_SKY 2010-04-01 09:58:42
如题! 高分悬赏!
...全文
764 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
TimDavid 2010-04-09
  • 打赏
  • 举报
回复
接楼上的 #18
用我用sin()画出的东西很难看0.0
有点超声波的味道,就是拉扯得厉害。
理论上用System.Math里面的一些数学函数应该可以做的出来的。
可能是自己哪里搞错了。
纠结ing
TimDavid 2010-04-09
  • 打赏
  • 举报
回复
波浪线函数

Path path = new Path();
Point startPoint=new Point(100,100);
PathFigure pf = DrawWave(10,100d,80,120,startPoint);

PathGeometry pg = new PathGeometry();

pg.Figures.Add(pf);
path.Data = pg;
path.Stroke = new SolidColorBrush(Colors.Black);


//波浪线画法函数,我的波浪线是由很多的“波”,组成的
PathFigure DrawWave(int sum,double waveWith,double xRadius,double yRadius,Point startPoint)
{
PathFigure pathFigure = new PathFigure();
pathFigure.StartPoint = startPoint;
for (int i = 0; i < sum; i++)
{
ArcSegment arcSegment = new ArcSegment();

arcSegment.Point = new Point(startPoint.X + waveWith*i, startPoint.Y);
arcSegment.Size = new Size(xRadius, yRadius);
pathFigure.Segments.Add(arcSegment);

}
return pathFigure;
}

大致说明下,早上时间比较宝贵...等下还要做开发呢。
我的波浪线实现方式:由一些曲线连接而成,有点“拼”的味道。不是一笔画成的。
AK_SKY 2010-04-09
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 timdavid 的回复:]
接楼上的 #18
用我用sin()画出的东西很难看0.0
有点超声波的味道,就是拉扯得厉害。
理论上用System.Math里面的一些数学函数应该可以做的出来的。
可能是自己哪里搞错了。
纠结ing
[/Quote]
我也很纠结!
AK_SKY 2010-04-08
  • 打赏
  • 举报
回复
protected Polyline ZigZag(Point point1,Point Point2)
{
double x1, y1, x2, y2;
if (Point2.X >= point1.X)
{
x1 = point1.X;
x2 = Point2.X;
y1 = point1.Y;
y2 = Point2.Y;

}
else
{

x1 = Point2.X;
x2 = point1.X;
y1 = Point2.Y;
y2 = point1.Y;
}
Polyline poly = new Polyline();

poly.Stroke = Brushes.Red;
poly.Points = new PointCollection();

for (double x =x1; x <= x2; x +=5)
poly.Points.Add(new Point(x, y1+x*(y2-y1)/(x2-x1)+ x% 10));

return poly;
}
这是我写的一个锯齿线 现在求波浪线的画法!
AK_SKY 2010-04-08
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 javalzn 的回复:]
到棒棒牛去吧,我发了一个源码包在那。注明:不是广告
[/Quote]
没有 你根本没实现!
AK_SKY 2010-04-08
  • 打赏
  • 举报
回复
这个考虑过 不是很好搞!
TimDavid 2010-04-08
  • 打赏
  • 举报
回复
要参考一些数学的知识。
例如画正弦曲线。用下sin();
AK_SKY 2010-04-08
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 javalzn 的回复:]
晕!里面有很多种曲线,有圆,有二次函数,还有余切,还有三角形缩放,这还不叫实现?难道非得是波浪线才叫实现,数学里面有波浪线这个东西吗?
你自己代入一个正弦/余弦函数就行了。
[/Quote]
函数谁都会写 你写得出来波浪线的函数吗?
javalzn 2010-04-08
  • 打赏
  • 举报
回复
晕!里面有很多种曲线,有圆,有二次函数,还有余切,还有三角形缩放,这还不叫实现?难道非得是波浪线才叫实现,数学里面有波浪线这个东西吗?
你自己代入一个正弦/余弦函数就行了。
jv9 2010-04-08
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 ak_sky 的回复:]
protected Polyline ZigZag(Point point1,Point Point2)
{
double x1, y1, x2, y2;
if (Point2.X >= point1.X)
{
x1 = point1.X;
x2 = Point2.X;
y1 = point1.Y;
y2 = Point2.Y;

}
……
[/Quote]

没有试过后台代码实现,帮你查查~:)
javalzn 2010-04-07
  • 打赏
  • 举报
回复
到棒棒牛去吧,我发了一个源码包在那。注明:不是广告
beniao277 2010-04-07
  • 打赏
  • 举报
回复
用代码画主要就是构造路径点
gzllang 2010-04-07
  • 打赏
  • 举报
回复
使用 Blend的钢笔来画,理论上可以实现任何图形。另外矩形、直线、椭圆都是可以转换为path的(右键菜单),你可以用钢笔随便在你想改变的地方增加或者删除点,再使用路径选择工具(左边工具栏的第二个箭头),就可以改变形状了。多多试试,就能灵活掌握了。方便大大的。
AK_SKY 2010-04-02
  • 打赏
  • 举报
回复
主要是用代码动态创建 !
xingjunli 2010-04-02
  • 打赏
  • 举报
回复
能用Blend来绘制是最好最容易的了,如果要用代码动态创建
建议学习一下Silverlight Geometry 相关的知识
Joetao 2010-04-02
  • 打赏
  • 举报
回复
看看SL中的Geometry(几何绘图)对象.可以动态创建的!
jv9 2010-04-01
  • 打赏
  • 举报
回复
参考这两篇文章。
http://blogs.msdn.com/expression/archive/2008/08/15/how-to-animate-a-drawing-line.aspx

http://visitmix.com/labs/rosetta/eyesofblend/drawing/

jv9 2010-04-01
  • 打赏
  • 举报
回复
很简单的,使用Blend来画吧,用Pen,画出路径,任何图形都可以实现。
AK_SKY 2010-04-01
  • 打赏
  • 举报
回复
自己顶一下 知道的分全给他!

8,734

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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