|
Перемещать Image
|
|||
---|---|---|---|
#18+
Подскажите как сделать что бы Image можно было перемещать только по линии? И как вообще таскать Image мышкой? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 13:47 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
На MouseDown на этом Image запоминать текущие координаты На MouseMove изменять координаты Image в соответствии с разницей изменения координат мыши относительно MouseDown На MouseUp прекращать обработку ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 13:55 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
Shocker.Pro, Спасибо. Сделал. А как сделать чтобы только по линии перемещать? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 14:08 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
Чистая математика. Координаты после вычисления надо приводить к координатам линии. То есть мы знаем - линия проходит по координатам 1:1, 2:2, 3:3, 4:4. А мышь выдала координаты 6:8. Приводим их к 6:6. например. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 14:16 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
Перемещать ImageСпасибо. Сделал.Проверил хоть? Этот код Код: vbnet 1. 2. 3. 4. 5. 6. 7.
никогда не сработает. Курсор все время будет над Image, а не над формой. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 15:18 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
Antonariy, Я проверил. Работает. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 15:19 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
Image ползает исключительно вдоль линии? Его невозможно утащить в сторону? Не верю, проект в студию. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 15:23 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
AntonariyImage ползает исключительно вдоль линии?Нет, читай топик сначала. Пока автор сделал (какой молодец без лишних глупых вопросов) движение за мышью. Теперь он думает над тем, как сделать вдоль линии. ЗЫ: Я в первом посте ответил на второй его вопрос, а не на первый, это я не указал, виноват ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 15:26 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
AntonariyПеремещать ImageСпасибо. Сделал.Проверил хоть? Этот код Код: vbnet 1. 2. 3. 4. 5. 6. 7.
никогда не сработает. Курсор все время будет над Image, а не над формой.А вообще-то работает. Нипонял... Хотя это можно и без кода сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 15:45 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
А, понял. Если нажать мышкой вне image и начать движение, он подтянется к курсору, а форма продолжит получать MouseMove. Если же по Image, то не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 15:53 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
Я пока только до этого додумался. Но что делать если линия ломаня будет и с петлями и если Image утащить ниже линии - не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 15:53 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
Но что делать если линия ломаня будет и с петлямиДелить на участки, каждый участок это график отдельной функции. В каждом участке (или в нескольких, если они пересекаются) вычисляются координаты пересечения нормали к графику функции и ее длина (от курсора до пересечения). Какая нормаль оказалась короче, к тому пересечению и лепим image. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 16:04 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
Так ты делай нужные расчеты не в MouseUp, а в MouseMove ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 16:05 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
Я пока только до этого додумался.Это тупик. Нужно сабклассить форму, без этого после захвата image mouse-событий на форме не дождешься. Там же можно ограничить перемещения самого курсора, не только image. В стандартной vb-модели событий этого не сделаешь без дёрганий. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 16:11 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
AntonariyЭто тупик. Нужно сабклассить формуДа нафига? Надо просто отслеживать события не на форме, а на Image1 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 16:18 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
Shocker.ProAntonariyЭто тупик. Нужно сабклассить формуДа нафига? Надо просто отслеживать события не на форме, а на Image1Какие? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 16:24 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
все те же - MouseDown, MouseMove, MouseUp. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 16:35 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
Shocker.Proвсе те же - MouseDown, MouseMove, MouseUp.AntonariyНужно сабклассить форму, без этого после захвата image mouse-событий на форме не дождешься . Какое из выделенных слов не понятно? Сабклассить, впрочем, не обязательно, но желательно. Вот минимальный рабочий вариант: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 16:49 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
Поправочка. Код: vbnet 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 16:50 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
AntonariyAntonariyНужно сабклассить форму, без этого после захвата image mouse-событий на форме не дождешься . Какое из выделенных слов не понятно?А зачем мне захватывать Mouse-события на форме? Задача стоит - таскать Image и именно событиями Image все и ограничится ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 16:53 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
Shocker.ProА зачем мне захватывать Mouse-события на форме? Задача стоит - таскать Image и именно событиями Image все и ограничитсяОк. Как определишь текущие координаты курсора относительно формы? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 16:58 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
AntonariyКак определишь текущие координаты курсора относительно формы? Да с этим как раз и засада у меня сейчас. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 17:02 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
AntonariyShocker.ProА зачем мне захватывать Mouse-события на форме? Задача стоит - таскать Image и именно событиями Image все и ограничитсяОк. Как определишь текущие координаты курсора относительно формы?А мне они не нужны ) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 17:02 |
|
Перемещать Image
|
|||
---|---|---|---|
#18+
Shocker.ProAntonariyпропущено... Ок. Как определишь текущие координаты курсора относительно формы?А мне они не нужны )я посмотрел алгоритм, да, теоретически там есть недостаток, если мышь двинется так резко, что выскочит за пределы Image, то Image "потеряется". Но практически обходилось только движением мыши внутри объекта, никто не разу не жаловался ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2012, 17:09 |
|
|
start [/forum/topic.php?fid=60&tid=2157631]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 168ms |
0 / 0 |