![]() |
Поворот массива точек
В принципе я понимаю, что задачка несложная, тут весь вопрос в методе и его красоте/скорости.
Дано: массив точек вида (х, y) расположеных в плоских координатах на плоскости. Задача: повернуть всю систему вокруг любой выбраной из массива наобум точки. Дополнительно: определить угол поворота всей плоскости относительно любой другой точки. У кого какие мысли? |
Ответ: Поворот массива точек
Подвинуть матрицу на позицию осевой точки.
(Что-бы выбранная точка была в центре) Повернуть матрицу. Подвинуть матрицу обратно. Первое, что в голову пришло. :) |
Ответ: Поворот массива точек
Мне кажется в этом случае результат будет неточным
|
Ответ: Поворот массива точек
Цитата:
![]() Сори, не удержался :lol: |
Ответ: Поворот массива точек
Чо-то кроме банальных тригнометрчиеских операций на ум ничего не идёт =\
|
Ответ: Поворот массива точек
грабануть картинку, и поставив хендл в нужную точку, повернуть
|
Ответ: Поворот массива точек
Цитата:
|
Ответ: Поворот массива точек
Товарищи в условии про картинку ничо несказано.
|
Ответ: Поворот массива точек
SBJoker, вот, набросал пример:
http://www.forum.likosoft.ru/showthr...=newpost&t=321 1000 точек поворачивается быстро. управление - навести на точку, зажать ЛКМ и возить мыша влево-вправо. |
Ответ: Поворот массива точек
Отлично. Надо придумать ещё что-нибудь занимательное..
|
Ответ: Поворот массива точек
1)Удивительно: только-что проверил:
Код:
(x1-x2)*(x1-x2) быстрее чем: Код:
(x1-x2)^2 2)Вроде можно вычислить косинус из готового синуса угла быстрее, чем вычислять новый. |
Ответ: Поворот массива точек
drunnik, мсье маньяк?
увеличение скорсти на 0.28 процента вполне укладывается в погрешность. |
Ответ: Поворот массива точек
А проверял раз 5:
В первом варианте было всегда 6037(один раз было 6036); А во втором всегда 6054. Это скорее не погрешность. |
Ответ: Поворот массива точек
Цитата:
|
Ответ: Поворот массива точек
SBJoker
а cos и sin одного угла можно вообще одной операцией посчитать Код:
inline void jeSinCos(float Angle,float & SinValue,float & CosValue ) |
Часовой пояс GMT +4, время: 18:10. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot