Горе со мной, поскольку я пытаюсь запрограммировать формулу для вычисления нового угла при рисовании дуги. Возможно, было бы лучше, если бы я объяснил это картиной.Поиск формулы для рисования дуги после перемещения начальной точки
Выше картина того, что я рисую на Google Earth.
В настоящее время у меня есть функция, которая рисует дугу задана (х, у) точки опоры, подшипник и расстояние от радиуса
После нанесения этой дуги (которая является самой дальней дугой от начала координат) на сюжет, мне нужно переместить точку начала, например. Если подшипник составлял 170 градусов, левая линия начиналась с 170-90, а правая - на 170 + 90
У меня возникли проблемы с поиском формулы для угла (или подшипника), который находится в меньших концентрических кругах , Я хотел бы поблагодарить всех за любую помощь, которую вы можете предоставить.
Вот моя формула для вычисления и рисования дуги
def drawArc(lat1,lon1,lbearing,rbearing,hr): #draw Arc given lat/lon piviot point with the right and left bearing to draw the path and distance
arcstr=""
if rbearing < lbearing: #if the left bearing is already bigger than the right bearing, switch places. Test Case not proven yet! with winds coming from the east
lbearing,rbearing = rbearing,lbearing
while lbearing < rbearing:
arc1,arc2 = getEndpoint(lat1,lon1,lbearing,hr) #arc1 and arc2 are lat and lon respectively
arcCoord = "%f,%f,0\n"%(arc2,arc1)
arcstr+=arcCoord
lbearing+=1 #count
#attach the last remaining point which is the end point at the right bearing
arc1,arc2 = getEndpoint(lat1,lon1,rbearing,hr) #arc1 and arc2 are lat and lon respectively
arcCoord = "%f,%f,0\n"%(arc2,arc1)
arcstr+=arcCoord
return arcstr
Чтобы нарисовать три Дуги, вот где функция называется:
arc3=drawArc(latitude,longitude,leBearing,reBearing,arc3hr)
arc2=drawArc(latitude,longitude,leBearing-(SOME FORMULA TO GIVE ME THE EXTRA ANGLE/BEARING TO INTERSECT WITH THE OUTER LINE),reBearing+(SAME FORMULA HERE),arc2hr)
arc1=drawArc(latitude,longitude,leBearing-(SOME FORMULA TO GIVE ME THE EXTRA ANGLE/BEARING TO INTERSECT WITH THE OUTER LINE),reBearing+(SAME FORMULA HERE),arc1hr)
известных точки на этой картинке:
Происхождение точки в lat/lon
- азимут и расстояние каждой линии
Радиус внутреннего круга на нуле 10 NM и внешний круг 20нм
Вот упрощенная картина, я считаю, угол тета является то, что я ищу
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что это не проблема программирования – jonrsharpe