powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Не могу сообразить
12 сообщений из 12, страница 1 из 1
Не могу сообразить
    #37444706
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то запарился и не могу сообразить. Необходимо узнать точку в большОй области соответствующую точке в области слева. Все переменные известны. Спасибо!
...
Рейтинг: 0 / 0
Не могу сообразить
    #37444710
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GorloPavel,

Непонятно. Если x1/y1=X/Y=c и нужна точка, разбивающая выделенную область справа в пропорциональном отношении, то (p1*(1+c),p2*(1+c)) - предполагая, что верхний левый угол это (0,0).
...
Рейтинг: 0 / 0
Не могу сообразить
    #37444713
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AbstractionGorloPavel,

Непонятно. Если x1/y1=X/Y=c и нужна точка, разбивающая выделенную область справа в пропорциональном отношении, то (p1*(1+c),p2*(1+c)) - предполагая, что верхний левый угол это (0,0).

Попробую объяснить. Самый большой прямоугольник(П1) - это экран компьютера... Прямоугольник который в нем(П2) это область которая отображается в прямоугольнике который слева(П3). Координатная плоскость П3 !=П2.
...
Рейтинг: 0 / 0
Не могу сообразить
    #37444723
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GorloPavel,

Если в П3 точка имеет координаты (p1, p2) при верхнем левом угле (0,0) и он отображается в П2 внутри П1 с верхним левым углом (p1, p2) при верхнем левом угле П1 (0,0), то ответ будет таким, как написано выше.
...
Рейтинг: 0 / 0
Не могу сообразить
    #37444744
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abstraction(p1*(1+c),p2*(1+c))

Спасибо! Но я не совсем понимаю что такое "1" и "с" в формуле :)
...
Рейтинг: 0 / 0
Не могу сообразить
    #37444830
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AbstractionЕсли x1/y1=X/Y= c
А 1 - это единица. Нейтральный элемент по умножению на множестве целых чисел ;)
...
Рейтинг: 0 / 0
Не могу сообразить
    #37444831
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abstraction,

Упс. c=x1/X=y1/Y, конечно же.
...
Рейтинг: 0 / 0
Не могу сообразить
    #37444870
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abstraction,

Я правильно понимаю?

X=cursorX*(1+(rect1_W/rect2_W));

Где cursorX это координата X в П3, rect1_W ширина П2, а rect2_W ширина П1.

Если правильно понимаю, то так не работает :(. Совсем уже голова кругом.
...
Рейтинг: 0 / 0
Не могу сообразить
    #37444873
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том что изображение с П2, который к примеру размером 330х650 отображается в П3 размером 480х800 на всю площадь. А размер П1 к примеру 1280х800.
...
Рейтинг: 0 / 0
Не могу сообразить
    #37444895
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GorloPavel,

Ну. Если верхний левый угол П2, скажем, (100, 0) в П1, то углы П3 отображаются так:
Код: plaintext
1.
2.
3.
(  0,   0) -> (100,   0)
(330,   0) -> (580,   0)
(  0, 650) -> (100, 800)
(330, 650) -> (580, 800) 
Соответственно, точка (100, 0) на П3 отобразится в (100*(1+330/480), 0*(1+650/800)) = (169, 0) на П1.

А что значит - "cursorX это координата X в П3"? Это Х-координата отображаемой точки в П3, которая по условию задачи равна Х-координате верхнего левого угла П2 в П1.
...
Рейтинг: 0 / 0
Не могу сообразить
    #37444927
GorloPavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abstraction,
Мне нужно чтобы кликнув мышкой в П3 размер которого всегда постоянен и в котором отображается П2(размер не постоянен), но полностью "растянутым" изображением на весь П3 который содержит часть изображения П1 я должен попадать в "правильную" координату на П1. Вот что мне нужно. :)

Заранее огромное спасибо!
...
Рейтинг: 0 / 0
Не могу сообразить
    #37444950
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GorloPavel,

Тогда исходный чертёж катастрофически неверен.
Что значит - "кликнув мышкой в П3"? Экран вроде бы П1, а координаты клика суть координаты на экране?

Если на экране (П1) клик был произведён в точке с экранными координатами (x,y), причём априори известно, что (х,у) принадлежит П2 внутри П1, и П2 имеет координаты верхнего левого угла (s x , s y ), то координатами в проекции будут (x p ,y p ) = (x-s x , y-s y ). Они могут принимать значения от (0,0) до (p x ,p y ), где p x и p y - размеры П2. Им можно найти соответствие в координатах оригинала : (x o ,y o ) = (x p *o x /p x ,y p *o y /p y ), где o x , o y - размеры П3. Окончательно, экранные координаты и координаты экрана оказываются связаны следующим соотношением:
(x o ,y o ) = ((x-s x )*o x /p x ,(y-s y )*o y /p y );
обратно,
(x, y) = (s x +x o *p x /o x ,s y +y o *p y /o y ).
Подставив во второе выражение в качестве (x o ,y o ) (s x , s y ), как на первой картинке, получаем (s x *(1+p x /o x ),s y *(1+p y /o y )).
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Не могу сообразить
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]