LINUX.ORG.RU

Туплю под утро опять, позиционное масштабирование или как то так, но как?

 , , , ,


0

1

Допустим на 2d плоскости есть точки

Я их могу все сместить

positions[i].x+=offset.x;
positions[i].y+=offset.y;

Я могу пропорционально увеличить расстояние между точками

positions[i].x*=scale.x;
positions[i].y*=scale.y;

При этом все точки уедут вниз вправо если scale положителен и наоборот вверх влево если scale отрицателен

Но чёт я туплю уже минут 5 на счёт того как мне пропорционально увеличить расстояние между точками относительно какой либо из них. Ну также как изображения увеличиваем в просмотрщиках в какой позиции мышка та область и увеличивается. :D

Просто пинка если можно в нужном направлении. )))) А я спать пойду :D

★★★★★

Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)

center.x = positions[target].x;
center.y = positions[target].y;

for p in positions {
    p.x = (p.x - center.x) * scale.x + center_x;
    p.y = (p.y - center.y) * scale.y + center_y;
}
anonymous
()

Вот он уровень современных маленьких сижников, дамы и господа. Представь, что будет после многих лет набивания оскомины с помощью !strcmp(str1, str2); 🌴strcpy(dst, src); 🤦 ptr = malloc(sizeof(struct MyStruct)); 😫 и goto error; 🤡, деградация к тому моменту будет необратима :( Одумайся, пока не поздно! Ты еще можешь вырасти над собой!

Одним словом, Rustи большой, не будь GOTO-лапшой!

🆁 🅰 🆉 🅾 🆁__🅵 🅻 🅰 🅲 🅾 🅽

Разорванный Флакон

anonymous
()

Я смотрю, главный ламер и графоман ЛОРа продолжает писать цикл статей «Аноны ЛОРа пишут за меня игру».

LINUX-ORG-RU Post Generator v1.2:

  На днях смотрел одно видео, так вот там дядька, умный такой дядька, кстати, чето затирал про обмен двух переменных без использования третей. Мол, так лучше для проца, компилятора и вообще меньше давления на аллокатор регистров (выделятор регистров, импортозамещение :D). Я конечно не спец в оптимизациях, во всех этих ваших x85, SPARMах и AVX-486 (поэтому говорят i486, да?), но я точно помню, что там была какая-то операция икс-OR (OR - это "или", это я и без словаря знаю :D), но не знаю почему именно икс? Ведь в графике нужны и икс, и игрек, и зет, и даже дабл ю. Может его проц поддерживал только операцию икс-ор, но никак не игрек-ор и выше? А то Intel любит так делать, сегрегация рынка, мать его.
  Может кто из лоровцев подскажет? А то чет я сегодня совсем не в себе, вялый какой-то, прям слышу, как в мозгу шестеренки шебуршат. Гусары, молчать! (Rust тут ни причем :D), поэтому не могу вспомнить ни дядьку того, ни метод его (о как! рифмы сами себя оплодотворять начали! мозг начинает работу :D). Может кто подскажет? Ну не будьте бяками, будьте зайками :) Цемки-цемки!
anonymous
()

Сначала дай себе ответ на простой вопрос: Где у тебя начало координат?
Масштабирование ты выполняешь относительно него.

blexey ★★★★★
()

Можно использовать матрицы, например в Qt 5 для рисования даже 2D они активно применяются. Какой фреймворк? Может в нем есть уже готовые функции для этого, а то после масштабирования захочется поворот

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Можно использовать матрицы

Подожди, ТС тут векторы еще не осилил, а ты ему уже про какие-то «матрицы» затираешь.

Разорванный Флакон

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.