|
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
|
|
Как сделать перемещение нарисованной фигуры по форме13.05.2012, 21:40. Показов 9822. Ответов 11
Метки нет (Все метки)
Всем добрый вечер. Подскажите как сделать перемещение нарисованной фигуры по форме? Допустим нарисовал круг,далее кликнули в любое место формы, и он передвинулся по диагонали. Именно по диагонали. Код не нужен,главное понять как вычислять координаты при передвижении по диагонали.
Заранее спасибо.
0
|
|
| 13.05.2012, 21:40 | |
|
Ответы с готовыми решениями:
11
Перемещение нарисованной фигуры по форме Перемещение фигуры нарисованной DrawPolygon |
|
2184 / 1255 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
|
||
| 13.05.2012, 21:52 | ||
|
0
|
||
|
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
|
|
| 14.05.2012, 13:32 [ТС] | |
|
Да это то понятно. Но надо узнать,какие именно нужны эти dx и dy(расстояние перемещения по осям) . Можно конечно при клике любое значение поставить,но фигура не попадёт в точку. От этих dx и dy зависит угол перемещения фигуры.
0
|
|
|
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
|
|
| 14.05.2012, 14:17 | |
|
если надо переместить туда куда кликнули просто измени координаты и перерисуй
если надо двигаться по диагонали - anonimus ответил уже так что надо-то?
0
|
|
|
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
|
|
| 14.05.2012, 16:53 [ТС] | |
|
Надо двигаться по диагонали. Как выбрать изменения перемещения?Так понятнее?
0
|
|
|
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
|
|
| 14.05.2012, 17:01 [ТС] | |
|
Если я Х и У буду изменять на одинаковое количество единиц,то фигура будет двигаться под углом 45% градусов,если Х увеличиваем,а У уменьшаем,то угол уменьшается. Если наоборот - угол увеличивается. Так как мне в зависимости от положения точки(конечной),рассчитать угол и в зависимости от угла выбрать шаг передвижения по Х и У?
0
|
|
|
328 / 312 / 68
Регистрация: 05.11.2009
Сообщений: 712
|
||||||
| 14.05.2012, 17:34 | ||||||
|
Расчёт точек между двумя заданными:
1
|
||||||
|
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
|
|||||||||||
| 14.05.2012, 19:42 [ТС] | |||||||||||
|
kuroiryuu, спасибо,но немного неправильно работает. Единственное ,что это направление правильно рассчитывает. Вот эти строчки обо всём говорят.
Добавлено через 19 минут Всё ,решил проблему. Добавлено через 4 минуты Кому интересно. Во-первых нельзя использовать целочисленные переменные,т.к. длина шага колеблется от -1 до 1,поэтому идёт округление. И делить надо не на количество итераций по Х или У,а на биссектрису . Вот пример расчёта:
Нет,ошибся. Так конечно лучше,но направление не совсем верное.
0
|
|||||||||||
|
328 / 312 / 68
Регистрация: 05.11.2009
Сообщений: 712
|
||
| 14.05.2012, 20:25 | ||
|
Смысл здесь в том, что любое движение по вектору можно с позиционировать оси, т.е. движение одновременно происходит по оси абсцисс и по оси ординат. Эти строки как раз это и рассчитывали, откуда вы решили что движение происходит только под 45 градусов не знаю... конечно желательно, чтобы step_x == step_y
0
|
||
|
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
|
|
| 14.05.2012, 20:39 [ТС] | |
|
Ну у меня получалось,что куда бы я ни кликнул мышью,круг начинает двигаться в это полушарие,но направление неверное,т.е. проходит мимо координат,куда я кликнул. delta_x и delta_y в отладчике принимают значения -1,0 или 1. В основном или (delta_x=1 и delta_y=1) или (delta_x=1 и delta_y=-1) или (delta_x=-1 и delta_у=1). Других значений не принимает. И при равных по модулю delta_x и delta_у движение будет под 45 градусов,только в разных направлениях.
0
|
|
|
328 / 312 / 68
Регистрация: 05.11.2009
Сообщений: 712
|
|
| 15.05.2012, 11:05 | |
|
выкладываю не большой пример, единственный недостаток предложенного мною метода это погрешность расчёта
хотя существуют и другие алгоритмы, которые могут рассчитать координаты точек вектора, надо просто вспомнить геометрию...
1
|
|
|
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
|
|
| 15.05.2012, 11:38 [ТС] | |
|
Спасибо. Я тоже разобрался уже).На самом деле всё очень просто).
0
|
|
| 15.05.2012, 11:38 | |
|
Помогаю со студенческими работами здесь
12
Как выполнить заливку нарисованной фигуры? Как реализовать заливку нарисованной фигуры?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|