lineTo c++

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Besi, 23 Apr 2010.

  1. Besi

    Besi Member

    Joined:
    3 Nov 2009
    Messages:
    0
    Likes Received:
    8
    Reputations:
    5
    LineTo как изменять размер во время движения не понимаю....
    LineTo(m_point.x+X,m_point.y+Y)
    однако как зделать так чтобы при движении X и Y увеличивались не понимаю
    если кто поможет понять как прописать такой цыкл буду благодарен

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

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

    Besi Member

    Joined:
    3 Nov 2009
    Messages:
    0
    Likes Received:
    8
    Reputations:
    5
    а можно апчик) ведь ето важно для меня)
     
  3. .acme

    .acme Elder - Старейшина

    Joined:
    8 Nov 2007
    Messages:
    126
    Likes Received:
    36
    Reputations:
    4
    http://www.z90.ru/forum/index.php - Форум Экстрасенсов и Экстрасенсорики.

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

    Besi Member

    Joined:
    3 Nov 2009
    Messages:
    0
    Likes Received:
    8
    Reputations:
    5
    1. Створити Windows-додаток із структурою документ/вид, який має стандартне меню та па-нель інструментів. При натиснення лівої кнопки миші у вікні виду в координатах курсору з’являється точка. Під час переміщення миші при натиснутій лівій кнопці точка розширю-ється до прямокутника, ліва верхня вершина якого знаходиться в тих самих координатах, де було натиснуто ліву кнопку миші. При відпусканні кнопки миші прямокутник перетворю-ється у лінію і виводиться повідомлення про отриману фігуру. Повторне натиснення кнопок миші закриває вікно повідомлення і повторює раніше означені операції. У вікні „About program” записана умова задачі та прізвище автора програми

    понятно теперь
    как зделать так чтобы он расширялся?
     
  5. POS_troi

    POS_troi Elder - Старейшина

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    Mouse_Move - в обработчике отрисовываеш прямоугольник используя координаты мыши.

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

    Если тупо подойти то в обработчике тупо перерисовываеш прямоугольник используя координыты верхней точки (гда нажали кнопку) и координаты нижней точки (где в данный момент мышка, обработчика даст тебе циферку)
     
    #5 POS_troi, 23 Apr 2010
    Last edited: 23 Apr 2010
  6. Besi

    Besi Member

    Joined:
    3 Nov 2009
    Messages:
    0
    Likes Received:
    8
    Reputations:
    5
    POS_troi
    задание перечитайте)
    и ваша фраза
    но факт в том что мышка двигается в любую строну и в не зависимости от того где мышка прямоугольник-расширяется тобиш по веру и низу не посториш тут нада цыкл..
     
  7. gisTy

    gisTy Elder - Старейшина

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    напиши задание по-русски, а то я нормально прочитать не могу.. начинаю смеяться
     
  8. POS_troi

    POS_troi Elder - Старейшина

    Joined:
    1 Dec 2006
    Messages:
    1,569
    Likes Received:
    466
    Reputations:
    108
    Я полностью понял задание.

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

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

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

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


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


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


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


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

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

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

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

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

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

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


    Мое сонное видение задачи ;)
     
    1 person likes this.