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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2012, 18:14   #1
Ann V
Новичок
Джуниор
 
Регистрация: 11.07.2012
Сообщений: 1
Смущение Немного изменить=)C++Работа с графикой(Form)

Программа работает,перемещает звезду с высоты h1 до h2 вниз,нужно чтобы перемещался точно так же ромб,как описать точки ромба?

Код:
#pragma endregion

	private: System::Void graficToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
}

private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
				 Graphics ^g =  CreateGraphics();
				 g->Clear(BackColor);
				 int h1, i;
				 int x=200, y=150, x0, x1, y0, y1;//x,y-начальное положение, x0, x1, y0, y1-точки фигуры
				 Pen^ Pen1 = gcnew Pen( Color::Black,2.0f );
				 h1=System::Convert::ToInt32(textBox1->Text);
				 a=h1;
				 for(i=1;i<=5;i++)// i-кол-во точек,тут звезда и их 5,у меня 4
				 {
					x0=x+h1*cos(i*2*3.1415*2/5);
					y0=y+h1*sin(i*2*3.1415*2/5);
					x1=x+h1*cos((i+1)*2*3.1415*2/5);
					y1=y+h1*sin((i+1)*2*3.1415*2/5);
					g->DrawLine( Pen1, x0, y0, x1, y1);
				 }
				 delete g;
				 delete Pen1; 
			 }

private: System::Void timer2_Tick(System::Object^  sender, System::EventArgs^  e) {	
			 a=h1;
			 if(h1<h2)
			 {
				 while(h1!=h2)
				 {
				 h1+=1;
				 Graphics ^g = CreateGraphics();
				 g->Clear(BackColor);
				 int x=200, y=150, x0, x1, y0=0, y1=0;
				 int i;
				 Pen^ Pen1 = gcnew Pen( Color::Black,2.0f );
				 for(i=1;i<=5;i++)
				 {
					x0=x+a*cos(i*2*3.1415*2/5);
					y0=y+a*sin(i*2*3.1415*2/5)+(h1-a);
					x1=x+a*cos((i+1)*2*3.1415*2/5);
					y1=y+a*sin((i+1)*2*3.1415*2/5)+(h1-a);
					g->DrawLine(Pen1, x0, y0, x1, y1);
				 }
				 delete g;
				 }
				 timer2->Stop();
				 }	 
			 else 
			 {
				 if(h1==h2) 
				 timer2->Stop();
				 else
				 {
					 while(h1!=h2)
					 {
					 h1-=1;
				 Graphics ^g = CreateGraphics();
				 g->Clear(BackColor);
				 int i;
				 int x=200, y=150, x0, x1, y0, y1;
				 Pen^ Pen1 = gcnew Pen( Color::Black,2.0f );
				 for(i=1;i<=5;i++)
				 {
					x0=x+a*cos(i*2*3.1415*2/5);
					y0=y+a*sin(i*2*3.1415*2/5)-(a-h1);
					x1=x+a*cos((i+1)*2*3.1415*2/5);
					y1=y+a*sin((i+1)*2*3.1415*2/5)-(a-h1);
					g->DrawLine( Pen1, x0, y0, x1, y1);
				 }
				 delete g;
					 }
				 timer2->Stop();
				 }
			 }
		 }

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
			 h1=System::Convert::ToInt32(textBox1->Text);
			 h2=System::Convert::ToInt32(textBox2->Text);
			 a=System::Convert::ToInt32(textBox1->Text);
			 timer2->Start();
 			 timer2_Tick(sender,e);
		 }
Буду рада любой помощи или справочным материалам)
Ann V вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C]Топологическая сортировка_нужно немного изменить программу Pblcb Помощь студентам 2 23.11.2011 19:09
Работа с графикой Dark Espeon Помощь студентам 1 06.04.2011 22:40
Работа с графикой! Gladiator Фриланс 6 10.03.2010 18:47
Немного изменить программу в Delphi Console. (Массивы) QuadroX Помощь студентам 1 14.10.2009 17:42
изменить размер шрифта в свойстве “Caption” формы (Form) Борис2 Компоненты Delphi 8 13.09.2007 20:36