Удалил всё старое..

( первый шаг ) На рисунке ниже изображен первичный прямоугольник, о котором известно следующее - Width, Height, координаты точки А(ax,ay) из которой он начинает свое отчисление. Сразу скажу, что начальная координата ноль находится в верхнем левом углу холста, на котором расположен прямоугольник. Точка О ( это то к чему я стремлюсь, но пока безрезультатно ) в данном контексте для примера. Так же стоит отметить, что помимо вышеуказанного, известно - scaleWidth=1=100%, scaleHeight=1=100%, speedWidth, speedHeight,speedX, speedY.( второй шаг ) Следующим шагом я нахожу конечную ширину, высоту и координату в которой будет точка А при масштабировании. Они мне необходимы, так как при расчете скорости, она умножается на время, которое течёт не равномерными интервалами и возможен результат, когда ширина, высота и координата точки А будут находится с не желаемыми значениями.( третий шаг ) На нем показано, как выглядит прямоугольник, до и после масштаба. Стрелки идущие из центра показывают пропорции масштаба, а так же то, что масштабирование происходит равномерно из центра. Так же хочу приковать взгляд на саму точку центра, она осталось в той же координате на холсте, что и была в самом начале. ( шаг четвертый ) Я не стал рисовать для четвертой картинки шаг один, так как он целиком совпадает с картинкой первого шага,вторую, так как финишная высота и ширина равна второму шагу, а конечные координаты точки А я как раз и не могу найти. Стоит отдельно отметить, что координаты центра начального прямоугольника и координаты точки А ( я их выделил красным ), на холсте имеют те же координаты, что и в трёх предыдущих рисунках. Но теперь увеличение масштаба происходит от точки D и именно её координаты должны оставаться не изменными относительно холста. Для этого нужно рассчитать конечные координаты точки А, что я и не могу сделать. И так же одно условие, должно быть верным и для увеличения и для уменьшения масштаба. У меня получилось сделать так только для рассчета скорости и ширины с высотой... alt text alt text alt text

alt text

задан 7 Ноя '13 11:16

изменен 8 Ноя '13 18:43

К сожалению, я не понял Вашего описания. Приведённые картинки никак не помогают осознать, что происходит. Трудность в понимании связана вот с чем: читателю не известно, что у Вас жёстко задано, а что меняется. Где начало системы координат? Как происходит изменение размеров в её пределах? Ответ здесь наверняка простой, на уровне обычного масштабирования, по надо знать точную постановку задачи.

(7 Ноя '13 13:26) falcao

Правильно ли я понимаю постановку задачи? Дана точка, координаты которой всегда считаются неизменными. Например, $%(x_0,y_0)$%. Есть прямоугольник, у которого эта вершина является левой верхней, и он имеет измерения $%a$% и $%b$%. Далее Вы меняете измерения, умножая $%a$% и $%b$% на заданные коэффициенты. И задаёте вопрос, куда при этом перейдёт точка с координатами $%(x,y)$%. То есть, какие она будет иметь координаты после растяжений или сжатий по осям, если всё меняется пропорционально? Если нужно именно это, я готов хоть сейчас написать готовые формулы (они в самом деле простые).

(7 Ноя '13 22:09) falcao

Есть одна проблема, на которую я давно хотел обратить внимание. Предлагаю задуматься вот над какой вещью. Я сейчас сижу за компьютером на своём месте. Но в это время Земля как-то вращается вокруг Солнца, и я перемещаюсь (в другой системе координат). Поэтому, когда Вы говорите о точке, которая "остаётся на своём месте", я не понимаю, что это значит, поскольку Вы не указываете, относительно какой системы координат это происходит. Соответственно, я не понимаю Вашего объяснения. Рисунки тоже не помогают. Предлагаю поэтому всё описывать в терминах координатных систем.

(7 Ноя '13 22:41) falcao

@shatal: я сейчас посмотрел Ваши иллюстрации, но, к сожалению, мне не понятно до конца, что там происходит. Я воспринимаю словесные описания (типа: прямоугольник растянули, сдвинули и т.п.), а по картинкам и диаграммам у меня не возникает однозначного понимания.

(8 Ноя '13 17:33) falcao

Только я забыл на шкале Y стереть минусы. И та и другая ось - положительная.

(8 Ноя '13 18:46) shatal

Извиняюсь за очень просто и из - за этого очень глупый вопрос. Два дня думал - думал и чуть не отчаялся, а только на пару часов отвлёкся и сразу понял, что все свои решения я делаю не правильно и даже немного смешно было, когда это понял. Спасибо!

(8 Ноя '13 22:07) shatal
показано 5 из 6 показать еще 1
10|600 символов нужно символов осталось
0

Координаты синей точки нужно пересчитывать в относительные координаты (по размеру прямоугольника) относительно угловой точки. При увеличении размера прямоугольника эти относительные координаты сохроаняются, но меняются стороны прямоугольника, т.е. из относительных координат и размеров нового прямоугольника можно получить координаты бирюзовой точки.

Прошу прощения, что данный алгоритм никак не формализовал.

ссылка

отвечен 7 Ноя '13 12:41

@vinger4: Спасибо Вам! Но я боюсь, что из-за недостатка информации с моей стороны, Вы не до конца поняли вопрос... Это моя вина..

(7 Ноя '13 21:13) shatal

почему-то у меня осталась уверенность, что я всё правильно понял)

(8 Ноя '13 12:42) vinger4
10|600 символов нужно символов осталось
Ваш ответ

Если вы не нашли ответ, задайте вопрос.

Здравствуйте

Математика - это совместно редактируемый форум вопросов и ответов для начинающих и опытных математиков, с особенным акцентом на компьютерные науки.

Присоединяйтесь!

отмечен:

×3,876
×2,596

задан
7 Ноя '13 11:16

показан
776 раз

обновлен
8 Ноя '13 22:07

Отслеживать вопрос

по почте:

Зарегистрировавшись, вы сможете подписаться на любые обновления

по RSS:

Ответы

Ответы и Комментарии

Дизайн сайта/логотип © «Сеть Знаний». Контент распространяется под лицензией cc by-sa 3.0 с обязательным указанием авторства.
Рейтинг@Mail.ru