LINUX.ORG.RU

Нужна формула перевода x и y координаты из мировой системы в оконную

 ,


0

1

То есть все мы рисовали в тетради на математике ось Ox и Oy мне надо перевести x и y координаты в оконную систему - то есть мы накладываем эти две оси на центр формы(в зависимости от ее размера) и получаем на выходе координаты x=Ow-> и y=Oh\|/

Эээээ….

Проверяешь что попадает в окно:

abs(x) <= wW / 2 && abs(y) <= wH / 2

Если да, то

wX = wW / 2 + x

wY = -(wH / 2 + y)

Или тут чота наркоманское?

DumLemming ★★★
()
Последнее исправление: DumLemming (всего исправлений: 1)

Примени соответствующее афинное преобразование.

Как это делать написано в книге
2020, Шикин & Боресков, Основы компьютерной графики (учебник и практикум для вузов)

Shushundr ★★★★
()
Ответ на: комментарий от DumLemming

мне 12 лет

В 14-ть лет Иван IV уже правил как Великий князь Московский.

а Петр Первый вообще взошёл на престол в 10.

в возрасте 12 лет на престол взошел Петр Алексеевич, внук Петра Великого.

Shushundr ★★★★
()
Последнее исправление: Shushundr (всего исправлений: 2)
Ответ на: комментарий от Shushundr

А в 33 Иисус уже умер и воскрес, а ты ещё даже не умер!!!

pihter ★★★★★
()
Ответ на: комментарий от bad_master

А что у тебя за окна? При помощи какой библиотеки графических элементов ты их составляешь?

Shushundr ★★★★
()

По х сдвиг влево на половину ширины окна.

По у сдвиг на половину высоты и смена знака.

Вообще такие темы на Лоре создавать… это какой то позор(с)

AntonI ★★★★★
()
Ответ на: комментарий от DumLemming

Или тут чота наркоманское?

Да, тут наркоманский автор темы.

firkax ★★★★★
()
Ответ на: комментарий от Shushundr

Школьнику невозможно объяснить вузовский материал на пальцах, нужен системный подход.

Учился в вузе, подобные вещи нам специально не объясняли, как-то сами интуитивно справлялись.

goingUp ★★★★★
()
Ответ на: комментарий от AntonI

да я когда-то знал но забыл, но там же еще важен размер окна, размер координатной плоскости и центр Oxy, поворот координатной плоскости - для общего вида

bad_master
() автор топика
Последнее исправление: bad_master (всего исправлений: 2)
Ответ на: комментарий от bad_master

Если никогда не знал, да еще забыл, совсем плохо - никак не вспомнить (студенческая мудрость).

Растяжение по координате - умножить на чиселку. Поворот - умножить на матрицу поворота.

AntonI ★★★★★
()
Ответ на: комментарий от bad_master

Не используй позиции button_x=10,button_y=20, а используй относительные позиции от размера окна, в каждом кадре отрисовки (но лучше по событию изменения размера окна всё же) получай размер окна. Затем для расположения кнопки всегда например в верхнем плевом углу тебе надо из размера окна по x вычесть размер кнопки по x, а в качестве y указать размер кнопки по y. Теперь как угодно изменяй размер окна кнопка будет торчать в углу окна. Если тебе надо кнопку в правом нижнем углу то из размера окна по x вычитаешь размер кнопки по x тоже самое с y. (при условии что позиция кнопки это её верхний левый угол)

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