【发布时间】:2017-07-10 10:10:43
【问题描述】:
我找不到在两条线之间绘制 ARC 的方法。我的约束是:我必须计算这个 Arc 笔划点。因为我使用的是 InkCanvas,而且我必须逐点绘制这个弧线,所以我不能将任何对象放在屏幕或画布上。所以我知道我可以用 PATH 对象绘制任何弧并使用 ArcSegment。使用这种方法是的,我可以绘制弧线,但它不是画布上的笔画点。因此,我无法删除或保存它。 无论如何,我需要逐点计算这个拱门。
我有像这样在画布上绘制圆圈的代码:
Stroke GetCircleStroke(int centerX, int centerY, int radiusX, int radiusY,double angletoDraw=2.0)
{
StylusPointCollection strokePoints = new StylusPointCollection();
int numTotalSteps = 180;
for (int i = 0; i <= numTotalSteps; i++)
{
double angle = angletoDraw * Math.PI * (double)i / (double)numTotalSteps;
StylusPoint sp = new StylusPoint();
//compute x and y points
sp.X = centerX + Math.Cos(angle) * radiusX;
sp.Y = centerY - Math.Sin(angle) * radiusY;
//add to the collection
strokePoints.Add(sp);
}
Stroke newStroke = new Stroke(strokePoints);
return newStroke;
}
我可以很容易地画圆,但我找不到画圆弧的方法:(
我们知道中心点 X,Y 并且我们知道 Line1 和 Line2 坐标。我只是不知道那是什么弧..
你能帮我这样计算弧点吗?
【问题讨论】:
标签: c# wpf canvas mat inkcanvas