Кинематический метод моделирования кривых Баглаев И.И. ОДТО Кинематический метод Наличие системы координат в среде FMSLogo позволяет вычерчивать линии по их уравнениям . Такой подход является традиционным при компьютерном моделировании геометрических объектов. Однако особенность рисования на экране с помощью перемещений Тортилы позволяет реализовать альтернативные подходы к генерированию геометрических образов, основанные на кинематических закономерностях перемещений реального робота-черепашки. Окружность это окр :s если :s = 360 [стоп] вп 1 пр 1 окр :s + 1 Конец Радиус r этой окружности будет равен 360/2π ≈ 57.2957. Пошаговый способ это окр1 :r :s если :s = 360 [стоп] вп :r/57.3 пр 1 окр1 :r :s + 1 Конец Длина C окружности ω радиуса R равна 2·π·R. Длина l 2 R R 0 дуги меры 360 1 окружности ω равна . 57.3 Отсюда следует, что для рисования окружности радиуса R нужно в цикле на каждый поворот на 10 перемещаться на l ед. Окр1 100 0 Поворотный способ это окр2 :k :s если :s > 2*пи/:k [стоп] вп 1 пр 57.3*:k окр2 :k :s + 1 Конец Из дифференциальной геометрии известно, что окружность является кривой постоянной кривизны k = 1/R. Длина C окружности кривизны k равна 2π/k ед. Следовательно, при перемещении по окружности на 1 ед. Тортила поворачивается на 57.3·k градусов. Окр2 0.02 0 Соприкасающаяся окружность Окружность, имеющая с данной кривой в данной ее точке касание 2-го порядка, называется соприкасающейся окружностью. Если кривая γ задана параметрически x x(t ), y y(t ), то радиус R соприкасающейся окружности вычисляется по формуле ( x y ) R . 2 2 3 x y y x Радиус соприкасающейся окружности называется радиусом кривизны кривой γ в данной точке. Величина k обратная радиусу кривизны называется кривизной кривой γ в данной ее точке. Апроксимация кривой соприкасающейся окружностью В окрестности точки кривой дуга соприкасающейся окружности аппроксимирует дугу кривой, поэтому можно рисовать соответствующую дугу кривой как дугу окружности радиуса R или кривизны k пошаговым или поворотным способами, соответственно. Нас интересует только форма кривой, а не размер или ориентация, т.е. определяем кривые с точностью до подобия. Таким образом, мы игнорируем постоянные множители перед формулами радиуса кривизны, кроме знака. Является также несущественным место, с которого на экране начинает рисоваться фигура. Астроида 3 t x a cos 4 , y a sin 3 t . 4 Радиус кривизны астроиды в произвольной ее точке находится по формуле 3 R a sin 2 t 8 . это астр повтори 360[вперед sin 2*счетчик ~ направо 1] конец Кардиоида Уравнение кардиоиды в полярных координатах 2 a(1 cos ) Радиус кривизны кардиоиды в произвольной точке находится по формуле R 8a sin 3 2 это кард1 для [t 0 360 2/3][вперед 2*sin :t/2 ~ пр 1 ] конец . Спираль Архимеда a k a ( 1) 2 2 2 это арх для [t 0 720 1][вп 0.005*частное ~ степень сумма степень :t 2 1 1.5 ~ сумма степень :t 2 1 пр 2 ] конец 3 2 Натуральное уравнение кривой Если в качестве параметра кривой взята длина s дуги кривой, то такая параметризация называется естественной, а уравнение выражающая кривизну k как функцию дуги s вдоль кривой называется натуральным уравнением кривой. Из дифференциальной геометрии известно, что натуральное уравнение k = k(s) определяет кривую с точностью до положения на плоскости. Поворотный способ моделирования кривой предполагает равномерное перемещение по кривой и поворот на угол, определяемый кривизной k. Клофоида Клофоидой называется кривая кривизна, которой прямо пропорциональна длине дуги. k = a·s. это клоф пусть "m место пусть "h направление пр 90 для [t 0 36 1][вперед 5 лв :t ] пп нм :m новк :h по лв 90 для [t 0 36 1][вперед 5 лв :t ] конец Трактриса t x a ln tg a cost , 2 y a sin t. k ( s) a tg arcsin e это трак пр 180 для [s 0.1 1.4 0.01][вперед 2 ~ лв tg arcsin exp -:s] пп домой пр 180 по для [s 0.1 1.4 0.01][вперед 2 ~ пр tg arcsin exp -:s] конец s a