Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2012, 02:32   #1
Goody
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 11
По умолчанию Обработчик событий Paint!!!

Нужна помощь.
Мне нужно сделать перерисовку изображения, при сворачивании окна рисунок пропадает.
PHP код:
int xStart,yStart,xEnd,yEnd,x,y,chance;
        
int step,dir;

        
        
Graphicsgr;
#pragma endregion
    
private: System::Void button2_Click(System::Object^  senderSystem::EventArgs^  e) {
                 
gr=pictureBox1->CreateGraphics();
                 
srand(time(NULL));
                 
xStart=rand()%730+1;
                 
yStart=rand()%400+1;
                 
xEnd=rand()%730+1;
                 
yEnd=rand()%400+1;
                 
click 1;
                 
gr->FillEllipseBrushes::RedxStartyStart5);
                 
gr->FillEllipseBrushes::RedxEndyEnd5);
         }
    private: 
System::Void button1_Click(System::Object^  senderSystem::EventArgs^  e
             {

                
timer1->Enabled=true;
             }
    private: 
System::Void timer1_Tick(System::Object^  senderSystem::EventArgs^  e) {
                 
click 2;
                 
Penpen=gcnew Pen(Color::Black);
                
                 
x=xStarty=yStart;
                 
step=rand()%10+1;//шаг
                 
if(xStart==xEnd&&yStart==yEnd)
                 
                 
timer1->Enabled=false;//Если попали, то отключаем таймер.
                 
else if(rand()%2)
                 {
//горизонталь, если кубик выпал или координата совпала
                   
dir=(x<xEnd)?1:-1;//направление: если мы слева от точки, то 1, иначе -1.
                   
if(rand()%5==0)//идем от точки в 1 случае из 5
                    
x-=dir*step;
                    else
//идем к точке во всех остальных случаях
                    
x+=dir*step;
                   
                 }
                 
                 else
                 {
//вертикаль
                   
dir=(y<yEnd)?1:-1;//направление: если мы сверху от точки, то 1, иначе -1.
                   
if(rand()%5==0)//идем от точки в 1 случае из 5
                     
y-=dir*step;
                    else
//идем к точке во всех остальных случаях
                     
y+=dir*step;
                   
                 }
                 
                 
gr->DrawLine(pen,xStart,yStart,x,y);
                 
xStart=x;
                 
yStart=y;
                 
             }


private: 
System::Void pictureBox1_Paint(System::Object^  senderSystem::Windows::Forms::PaintEventArgs^  e
         {
             
Penpen=gcnew Pen(Color::Black);

             if(
click == 1)
             {
                 
                 
e->Graphics->FillEllipseBrushes::RedxStartyStart5);
                 
e->Graphics->FillEllipseBrushes::RedxEndyEnd5);
                
             }
         
                 
                 
            
                 
             } 
PHP код:
if(click == 1)
             {
                 
                 
e->Graphics->FillEllipseBrushes::RedxStartyStart5);
                 
e->Graphics->FillEllipseBrushes::RedxEndyEnd5);
                
             } 
этот кусок рисует две точки!!!
А мне надо чтобы он перерисовал кривую линию!!!

Само задание.
В PictureBox случайно выбираются 2 точки. Постепенно (заметно для пользователя) соединить эти 2 точки случайной ломаной линией, строящейся по следующему принципу: начинаем движение от первой точки, а затем на каждом шаге делаем следующее: сначала выбираем длину звена (от 1 до 10 пикселей), а затем направление движения (вверх, вниз, вправо, влево), причем шансы пойти в сторону второй точки несколько больше, чем от нее. Процесс продолжать, пока не достигнем второй точки.
Goody вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработчик событий kostolomeo Помощь студентам 1 22.05.2012 07:49
обработчик событий IIaJIbI4 БД в Delphi 2 07.06.2011 15:09
С++ Обработчик событий hungry Общие вопросы C/C++ 11 12.05.2011 13:18
обработчик событий кнопки Dmitriy.Ch Общие вопросы C/C++ 0 04.07.2009 09:35
обработчик событий ben95 Помощь студентам 5 28.01.2008 17:46