Как нарисовать дугу, которая идет от 0 градусов до 180, а его периметр равен 20 мм?
Как нарисовать дугу, которая идет от 0 градусов до 180, а его периметр равен 20 мм?
Картинка с пояснением[^]
Что я уже пробовал:
Graphics g = Graphics.FromImage(bmp); g.PageUnit = GraphicsUnit.Millimeter; Rectangle r = new Rectangle(0, 0, (int)(Math.Round((40 / 25.4) / (float)Math.PI * g.DpiX) * 2), (int)(Math.Round((40 / 25.4) / (float)Math.PI * g.DpiY) * 2)); g.DrawArc(Pens.Black, r, 0, 180);
Это то, что я пытался сделать до сих пор. Я пришел к такому выводу :
g.DrawLine(Pens.Black, 1, 1, 1, (float)Math.Round((2 / 25.4) * g.DpiY));
Этот код рисует линию длиной 2 мм. Но первая часть кода, которая должна работать хорошо, по какой-то причине не работает, и она отображает полукольцо больше, чем должно быть.