|
|
|
Не могу сообразить
|
|||
|---|---|---|---|
|
#18+
Что-то запарился и не могу сообразить. Необходимо узнать точку в большОй области соответствующую точке в области слева. Все переменные известны. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2011, 12:48 |
|
||
|
Не могу сообразить
|
|||
|---|---|---|---|
|
#18+
GorloPavel, Непонятно. Если x1/y1=X/Y=c и нужна точка, разбивающая выделенную область справа в пропорциональном отношении, то (p1*(1+c),p2*(1+c)) - предполагая, что верхний левый угол это (0,0). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2011, 12:53 |
|
||
|
Не могу сообразить
|
|||
|---|---|---|---|
|
#18+
AbstractionGorloPavel, Непонятно. Если x1/y1=X/Y=c и нужна точка, разбивающая выделенную область справа в пропорциональном отношении, то (p1*(1+c),p2*(1+c)) - предполагая, что верхний левый угол это (0,0). Попробую объяснить. Самый большой прямоугольник(П1) - это экран компьютера... Прямоугольник который в нем(П2) это область которая отображается в прямоугольнике который слева(П3). Координатная плоскость П3 !=П2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2011, 12:58 |
|
||
|
Не могу сообразить
|
|||
|---|---|---|---|
|
#18+
GorloPavel, Если в П3 точка имеет координаты (p1, p2) при верхнем левом угле (0,0) и он отображается в П2 внутри П1 с верхним левым углом (p1, p2) при верхнем левом угле П1 (0,0), то ответ будет таким, как написано выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2011, 13:27 |
|
||
|
Не могу сообразить
|
|||
|---|---|---|---|
|
#18+
Abstraction(p1*(1+c),p2*(1+c)) Спасибо! Но я не совсем понимаю что такое "1" и "с" в формуле :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2011, 14:22 |
|
||
|
Не могу сообразить
|
|||
|---|---|---|---|
|
#18+
AbstractionЕсли x1/y1=X/Y= c А 1 - это единица. Нейтральный элемент по умножению на множестве целых чисел ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2011, 15:59 |
|
||
|
Не могу сообразить
|
|||
|---|---|---|---|
|
#18+
Abstraction, Упс. c=x1/X=y1/Y, конечно же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2011, 16:00 |
|
||
|
Не могу сообразить
|
|||
|---|---|---|---|
|
#18+
Abstraction, Я правильно понимаю? X=cursorX*(1+(rect1_W/rect2_W)); Где cursorX это координата X в П3, rect1_W ширина П2, а rect2_W ширина П1. Если правильно понимаю, то так не работает :(. Совсем уже голова кругом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2011, 17:02 |
|
||
|
Не могу сообразить
|
|||
|---|---|---|---|
|
#18+
Дело в том что изображение с П2, который к примеру размером 330х650 отображается в П3 размером 480х800 на всю площадь. А размер П1 к примеру 1280х800. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2011, 17:06 |
|
||
|
Не могу сообразить
|
|||
|---|---|---|---|
|
#18+
GorloPavel, Ну. Если верхний левый угол П2, скажем, (100, 0) в П1, то углы П3 отображаются так: Код: plaintext 1. 2. 3. А что значит - "cursorX это координата X в П3"? Это Х-координата отображаемой точки в П3, которая по условию задачи равна Х-координате верхнего левого угла П2 в П1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2011, 17:32 |
|
||
|
Не могу сообразить
|
|||
|---|---|---|---|
|
#18+
Abstraction, Мне нужно чтобы кликнув мышкой в П3 размер которого всегда постоянен и в котором отображается П2(размер не постоянен), но полностью "растянутым" изображением на весь П3 который содержит часть изображения П1 я должен попадать в "правильную" координату на П1. Вот что мне нужно. :) Заранее огромное спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2011, 18:13 |
|
||
|
Не могу сообразить
|
|||
|---|---|---|---|
|
#18+
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 )). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2011, 18:37 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=79&tid=1342729]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 330ms |

| 0 / 0 |
