Найдите x и y на арке

#python #math #geometry

Вопрос:

введите описание изображения здесь

Всем привет. Я не очень хорошо разбираюсь в математике, поэтому мне понадобится помощь в написании функции на Python. Есть арка, и мне нужно знать x и y каждого пикселя на арке. Все данные, которые у меня есть, я записал на картинке. Дайте мне знать, если что-то потребуется уточнить дополнительно.

Ответ №1:

Имея длину и радиус дуги, мы можем найти угол дуги в радианах

 fi = L/R= 366.5/350  (60 degrees, BTW)
 

Полуугольный

 hf = fi/2 = 366.5/700   (30 degrees)
 

Координаты центра круга

 cx = R * sin(hf) = 350*1/2 = 175
cy = R * cos(hf) = 350*0.866 = 303.1
 

Теперь мы можем сделать цикл, чтобы получить координаты пикселей с заданным разрешением с начальным углом -Pi/2-Pi/6 (в общем случае -Pi/2-hf )

 for i in range(2220):
   an = -math.pi*2/3     i * 366.5/350 / 2220
   x = cx   R * math.cos(an)
   y = cy   R * math.sin(an)
 

Чтобы исправить ваш код:

 cx = radius * math.sin(hf)
cy = -radius * math.cos(hf)

xl.append(cx   radius * math.cos(an))
yl.append(cy - radius * math.sin(an))
 

Комментарии:

1. y = cx математика.cos(an) вы имеете в виду cy?

2. Конечно, и sin там. Ошибка копирования-вставки

3. можете ли вы объяснить эту строку an = -математика.pi*2/3 i * длина/радиус / 2220

4. i * длина/радиус / 2220-это количество пикселей, умноженное на разрешение по углу в радианах. (0,021021027 в градусах). Нулевой угол-это правильное направление (ось OX), поэтому мы должны сдвинуть угол на Pi/2 к верхней точке и на hf (здесь Pi/6=30 градусов) к углу начала дуги

5. Также добавьте умножение на радиус