PDA

Просмотр полной версии : lineTo c++


Besi
23.04.2010, 15:16
LineTo как изменять размер во время движения не понимаю....
LineTo(m_point.x+X,m_point.y+Y)
однако как зделать так чтобы при движении X и Y увеличивались не понимаю
если кто поможет понять как прописать такой цыкл буду благодарен

нада так чтобы при движении мышки на 1 координату в любую сторону
x и y изменялись в нужную мне сторону

1 раз ето я прорисовываю (появляется точка как мне нада) но мне нада обновлять ету фигуру при движении
помогите с цыклом который ето будет делать

Besi
23.04.2010, 21:05
а можно апчик) ведь ето важно для меня)

.acme
23.04.2010, 21:47
http://www.z90.ru/forum/index.php - Форум Экстрасенсов и Экстрасенсорики.

Для начала скажи опиши ситуацию детально.

Besi
23.04.2010, 22:22
1. Створити Windows-додаток із структурою документ/вид, який має стандартне меню та па-нель інструментів. При натиснення лівої кнопки миші у вікні виду в координатах курсору з’являється точка. Під час переміщення миші при натиснутій лівій кнопці точка розширю-ється до прямокутника, ліва верхня вершина якого знаходиться в тих самих координатах, де було натиснуто ліву кнопку миші. При відпусканні кнопки миші прямокутник перетворю-ється у лінію і виводиться повідомлення про отриману фігуру. Повторне натиснення кнопок миші закриває вікно повідомлення і повторює раніше означені операції. У вікні „About program” записана умова задачі та прізвище автора програми

понятно теперь
а. Під час переміщення миші при натиснутій лівій кнопці точка розширю-ється до прямокутника, ліва верхня вершина якого знаходиться в тих самих координатах, де було натиснуто ліву кнопку миші.
как зделать так чтобы он расширялся?

POS_troi
23.04.2010, 22:45
Mouse_Move - в обработчике отрисовываеш прямоугольник используя координаты мыши.

Погугли на тему "%ЯзыкПрограммирования% рисование фигуры"

Если тупо подойти то в обработчике тупо перерисовываеш прямоугольник используя координыты верхней точки (гда нажали кнопку) и координаты нижней точки (где в данный момент мышка, обработчика даст тебе циферку)

Besi
23.04.2010, 23:22
POS_troi
задание перечитайте)
. Під час переміщення миші при натиснутій лівій кнопці точка розширю-ється до прямокутника,

и ваша фраза
координаты нижней точки (где в данный момент мышка, обработчика даст тебе циферку)
но факт в том что мышка двигается в любую строну и в не зависимости от того где мышка прямоугольник-расширяется тобиш по веру и низу не посториш тут нада цыкл..

gisTy
23.04.2010, 23:25
напиши задание по-русски, а то я нормально прочитать не могу.. начинаю смеяться

POS_troi
23.04.2010, 23:56
Я полностью понял задание.

У вас есть исходные данные - координаты где была нажата левая кнопка.

Прямоугольник это простая фигура имеющая 4-е координаты (углы).

Для расчета прямоугольника достаточно знать две координаты - начальная и противоположная по диоганали

x1,y1 ---------------------- x2,y2


x,y ---------------------- x3,y3


x3,y3 = x2,y
x1,y1 = x,y2


и совершенно все равно куда у тебя ушла фигура от начальной точки - вверх или вниз.


Далее делаем обработчик перемещения мыши (WinApi вполне подойдет) в нем проверяем нажата ли еще кнопка мыши и если нажата то берем и координату в которой в данный момент находится мышь (начальные координаты у нас уже есть - мы их выловили с помощью обработчика нажатия кнопки мыши допустим MouseButtonDowm), только получили координату и сразу перерисовываем прямоугольник (формулка выше) .

Обработчик MouseMove вызывается каждый раз когда мышь передвигается хоть на пиксель.

LineTo как изменять размер во время движения не понимаю....

Только дорисовывать или зарисовать прошлую линию цветом фона и нарисовать новую.

помогите с цыклом который ето будет делать

Обработчика WinApi MouseMove и будет твоим циклом.

Могу предложить решение в лоб:

Как понимаю ты рисуеш линии на форме а я могу предложить кинуть на форму pictureBox и рисовать по нему.

Тупо в начале обработчика движения мыши делать pictureBox.clean() и прорисовывать прямоугольник по новой (правда мерцать может)


Мое сонное видение задачи ;)