|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.07.2015, 14:42 | #1 |
Регистрация: 13.07.2015
Сообщений: 6
|
Поворот круга (алгоритм)
Есть круг с отверстиями, пронумерованными от 0 до 359.
Есть ранее запомненная позиция A (например, если А = 63 значит было запомнено 63-е отверстие). В любой момент времени мы получаем текущую позицию P, которая может быть любой от 0 до 359. Как реализовать движение по минимиальному расстоянию от Р к А (т.е. указать как кругу двигаться - по часовой или против часовой стрелки)? P.S. Когда инкрементируется Р (текущая позиция) то при переходе нулевой позиции Р обнуляется. Т.е. Р - это счетчик позиций: досчитал до 359, сдвинулся еще вперед (+1) и обнулился. Последний раз редактировалось GreenFirefly; 13.07.2015 в 14:50. Причина: уточнение |
13.07.2015, 14:58 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
(p>a и p-a<=180) или (p<a и a-p>180) против часовой иначе по
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
13.07.2015, 15:00 | #3 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
1) пишем ДВЕ функции ВЫЧИСЛЕНИЯ расстояний ПО /ПРОТИВ часовой стрелки
function Дистанция по часовой стрелке (A, P) дистанция :=P-A; если диcтанция <0 то дистанция :=дистанция+360; function Дистанция против часовой стрелки(A,P) дистанция :=A-P; если диcтанция <0 то дистанция :=дистанция+360; 2) ВЫЧИСЛЯЕМ, СРАВНИВАЕМ и ПРИНИМАЕМ решение. если Дистанция по часовой(A,P) <Дистанция против часовой(A,P) то ДВИЖЕНИЕ ПО ЧАСОВОЙ иначе ДВИЖЕНИЕ ПРОТИВ ЧАСОВОЙ 0) применяем формулЫ (P-A +360) mod 360 //расстояние по часовой (A-P +360) mod 360 //расстояние против часовой
программа — запись алгоритма на языке понятном транслятору
|
13.07.2015, 15:23 | #4 |
Регистрация: 13.07.2015
Сообщений: 6
|
|
13.07.2015, 15:27 | #5 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
Код:
УВАГА!! АХТУНГ!!! АТТЕНШН!!!! Shit-code detected! Код не отлаживал. Писал на заборе! Возможно, попутал знак (±). Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
13.07.2015, 15:32 | #6 |
Регистрация: 13.07.2015
Сообщений: 6
|
|
13.07.2015, 15:47 | #7 | ||
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
||
13.07.2015, 15:49 | #8 |
Регистрация: 13.07.2015
Сообщений: 6
|
|
13.07.2015, 15:54 | #9 | |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Вопрос о безразличии движения и его отсутствии не рассматривается?
Код:
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Заданы радиус круга ... | Aidar9119 | Помощь студентам | 3 | 20.03.2014 07:11 |
Площадь круга. Математика. | glebast | Помощь студентам | 1 | 15.09.2012 21:53 |
поворот изображения на форме (либо поворот файла с картинкой) | mystiql | Microsoft Office Access | 2 | 21.06.2011 22:03 |
Движение круга:) | mitmikha | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 12.04.2011 12:11 |
Площадь круга | sturz | Помощь студентам | 20 | 23.01.2011 11:07 |