我在Google上搜索我什么都没找到。你知道吗?
答案 0 :(得分:10)
找到螺旋方程(你必须决定一个,不同类型的螺旋存在),即:http://mathworld.wolfram.com/ArchimedesSpiral.html一个在极坐标中呈现。鉴于此,您需要对其进行近似,例如通过线条。这就是我要去的方式。 所以我可以发布一些代码作为一个例子,我在一个新的wpf应用程序中编写,我从xaml中删除了默认网格(如果你想尽快测试代码,则必需):
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Path p = new Path();
p.Data = CreateSpiralGeometry(1000, new Point() { X = 200, Y = 180 },Math.PI*10, 100);
p.Stroke = Brushes.Black;
AddChild(p);
}
private PathGeometry CreateSpiralGeometry(int nOfSteps, Point startPoint, double tetha, double alpha)
{
PathFigure spiral = new PathFigure();
spiral.StartPoint = startPoint;
for(int i=0;i<nOfSteps;++i)
{
var t = (tetha/nOfSteps)*i;
var a = (alpha/nOfSteps)*i;
Point to = new Point(){X=startPoint.X+a*Math.Cos(t), Y=startPoint.Y+a*Math.Sin(t)};
spiral.Segments.Add(new LineSegment(to,true));
}
return new PathGeometry(new PathFigure[]{ spiral});
}
}