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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2011, 19:10   #1
j-pavlov
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 34
По умолчанию Графика в с++ прямоугольник с двумя диагональными линиями.

Задание, нужно нарисовать прямоугольник с цветом любым и с двумя диагональными линиями
собственно у меня получается этот прямоугольник, с линиями,но они по другому у меня, а нужно X помогите, чтобы пересекали прямоугольник вот так IХI буквой X

Делал в билдер с++

Код:
Код:
//---------------------------------------------------------------------------

#include <vcl.h> 

#pragma hdrstop 

#include "Unit1.h" 

//---------------------------------------------------------------------------

#pragma package(smart_init) 

#pragma resource "*.dfm" 

TForm1 *Form1; 

//int R=100; 

int Lx; 

int Ly; 

int dx=1, dy=1; 

int flagx=1, flagy=1; 

int swpFlag(int); 

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner) 

: TForm(Owner) 

{ 

} 

//---------------------------------------------------------------------------

int swpFlag(int a) 

{ 

if (a==-1) a=1; 

else a=-1; 

return a; 

} 

void __fastcall TForm1::Button1Click(TObject *Sender) 

{ 

/* Form1->Canvas->MoveTo(ClientWidth/2,0); 

Form1->Canvas->LineTo(ClientWidth/2,ClientHeight); 

Form1->Canvas->MoveTo(0,ClientHeight/2); 

Form1->Canvas->LineTo(ClientWidth, ClientHeight/2); 

*/ 

int X=ClientWidth; 

int Y=ClientHeight; 

for (int i=0; i<1000; i++) 

{ if (dx>=X) flagx=swpFlag(flagx); 

if (dx<=0) flagx=swpFlag(flagx); 

if (dy>=Y) flagy=swpFlag(flagy); 

if (dy<=0) flagy=swpFlag(flagy); 

dx+=flagx*Lx; 

dy+=flagy*Ly; 

Form1->Canvas->Pen->Color=RGB(255,0,0); 

Form1->Canvas->Brush->Color=RGB(0,0,255); 

Form1->Canvas->Rectangle(dx, dy,dx+i, dy+i); 

} 

//Form1->Canvas->Pen->Color=Form1->Color; 

//Form1->Canvas->Brush->Color=Form1->Color; 

// Form1->Canvas->Brush->Color=Form1->Color; 

// Form1->Canvas->Ellipse(10+i-1,10+i-1,150+i-1,150+i-1); 

} 

//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender) 

{ 

int X=ClientWidth; 

int Y=ClientHeight; 

if (dx>=X) flagx=swpFlag(flagx); 

if (dx<=0) flagx=swpFlag(flagx); 

if (dy>=Y) flagy=swpFlag(flagy); 

if (dy<=0) flagy=swpFlag(flagy); 

dx+=flagx*Lx; 

dy+=flagy*Ly; 

Invalidate(); 

} 

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender) 

{ 

Form1->Canvas->Pen->Color=RGB(255,0,0); 

Form1->Canvas->Brush->Color=RGB(0,0,255); 

Form1->Canvas->Rectangle(dx, dy,dx, dy); 

Form1->Canvas->MoveTo(ClientWidth/2,0); 

Form1->Canvas->LineTo(ClientWidth/2,ClientHeight); 

Form1->Canvas->MoveTo(0,ClientHeight/2); 

Form1->Canvas->LineTo(ClientWidth, ClientHeight/2); 

} 

//---------------------------------------------------------------------------
j-pavlov вне форума Ответить с цитированием
Старый 03.05.2011, 19:31   #2
j-pavlov
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 34
По умолчанию

помогите плиз...
j-pavlov вне форума Ответить с цитированием
Старый 03.05.2011, 21:10   #3
j-pavlov
Пользователь
 
Регистрация: 21.01.2011
Сообщений: 34
По умолчанию

сделал одну диагональную линию, вторую не могу ((

Form1->Canvas->MoveTo(ClientWidth/2,0);

Form1->Canvas->LineTo(ClientWidth/1,ClientHeight);

Form1->Canvas->MoveTo(0,ClientHeight/2);

Form1->Canvas->LineTo(0, ClientHeight/100);
j-pavlov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расчёт среднего расстояния между двумя линиями (Delphi) Krutkin Помощь студентам 5 04.10.2010 14:04
Сортировка с Линиями shullermaster Помощь студентам 1 27.04.2010 23:29
сильно мерцать линиями монитор Джонег Компьютерное железо 1 04.01.2010 01:18
Проблема с линиями volna Паскаль, Turbo Pascal, PascalABC.NET 7 04.06.2009 08:44
Точки соединённые линиями Konerld Помощь студентам 8 07.04.2009 10:20