|
|
|
cs137 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 22.8.2007 Репутация: нет Всего: нет |
Имеется следующая задача:
Существует окружность с координатами центра (x0,y0) и радиусом r0. В данной окружности имеется набор точек с известными координатами. Для упрощения возмем одну точку (P), распологающуюся внутри окружности и имеющую координаты (xp, yp): Далее задается некое смещение координат центра окружности (x0 + dx, y0 + dy). Ну так вот задача состоит в том, чтобы сместить точку P (xp,yp) в том же направлении, но на велечину зависящую от расстояния данной точки до центра окружности (от велечены модуля вектора составленного из точки центра окружности и точки P), т.е. чем дальше точка от центра окружности, тем меньше ее смещение... При этом сама окружность не смещается, т.е. задается общее (максимальное) смещение для точек расположенных внутри окружности. Я думаю, что тут нужно использовать полярную систему координат... Только вот не представляю себе формулу (ro, phi):
Не подскажите формулку? Заранее большое спасибо |
|||
|
||||
maxim1000 |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
линзу движущуюся делаем?
(ну или каплю) ИМХО, полярные координаты здесь не очень и исходные, и конечные данные - в декартовых координатах да и сам сдвиг в полярных координатах неудобно делать в декартовых можно просто по постановке задачи: 1. считаем расстояние от точки до центра 2. считаем длину смещения в зависимости от этого расстояния 3. сдвигаем точку на вектор L*<dx,dy> (L - посчитанное смещение) -------------------- qqq |
|||
|
||||
cs137 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 22.8.2007 Репутация: нет Всего: нет |
Ага Я уже конечно попробовал реализовать сие в декартовых координатах, но тут возникла проблема. Расстояние от точки до центра определяется двумя координатами, и если одно из смещений равно нулю (смещение строго по горизонтали или по вертикали), то длина смещения в этом случае уменьшится. Т.е. получаем максимальное смещение точек при угле сдвига кратному pi/4. А мне необходимо, чтобы смещение точки относительно центра окружности было одинаковым, в не зависимости от направления вектора смещения... |
|||
|
||||
maxim1000 |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
тогда я бы посоветовал всё-таки пересчитывать то, что внутри линзы, полностью а то выбранный подход не очень-то точен: ведь в процессе смещения расстояние до центра будет меняться, а значит, и скорость смещения тоже, а это уже приводит к необходимости решать дифф.ур. а вот полный пересчёт, по-моему, вычислительно даже и не будет сложнее... Добавлено через 2 минуты и 32 секунды тут, помнится, обсуждали подобные вопросы: http://forum.vingrad.ru/index.php?showtopi...st&p=695793 -------------------- qqq |
|||
|
||||
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |