Я не могу найти способ нарисовать 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. Я просто не знаю, что это за дуга ..
Не могли бы вы помочь мне таким способом рассчитать точки дуги?