Класс ромб
Помогите написать класс ромб,что просто надо было ввести 4 точки и строился ромб!помогите плиз,оч.надо
Окей. Поможем ! Давайте свои наброски кода...
P.S: Вам ведь нужно помочь, а не написать программу за Вас...
P.S: Вам ведь нужно помочь, а не написать программу за Вас...
Спасибо,но задание уже чуть-чуть переменилось.Нам надо создать класс ромб и его дочерний-диагонали ромба.т.е. то бы у нас на экране был ромб с диагоналями,его можно было передвигать нажатием стрелок на клавиатуре и скрывать.
код:
Готов заплатить за доделку этой программы.
код:
Код: Выделить всё
#include <iostream.h>
#include <stdio.h>
#include <graphics.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
int init ()
{
int gdriver=DETECT, gmode, errorcode;
initgraph (&gdriver, &gmode, "C:\\BORLANDC\\bin");
errorcode = graphresult();
if (errorcode!=grOk)
{
char *err=grapherrormsg (errorcode);
cout << "Graphics error: " << err << endl;
cout <<"Press any key to exit";
getch ();
exit (1);
}
return 0;
}
class romb
{protected:
int x1;
int y1;
int x2;
int y2;
int color;
public:
romb(int sx1,int sy1,int sx2,int sy2)
{x1=sx1;x2=sx2;y1=sy1;y2=sy2;}
int vvod_koord(int kx1,int kx2,int ky1,int ky2)
{x1=kx1;
x2=kx2;
y1=ky1;
y2=ky2;}
void vvod_cveta(int sc)
{color=sc;}
int GetX1(){return x1;}
int GetY1(){return y1;}
int GetX2(){return x2;}
int GetY2(){return y2;}
int getcolor(){return color;}
void ris()
{setcolor(color);
line(x1,y1,x2,y2);
line(x1,y1,x1,y2+y2-y1);
line(x1,y1+y1-y2,x1+x1-x2,y2);
line(x1+x1-x2,y2,x1,y1);
getch();}
void hide()
{int bk=getbkcolor();
int cc=color;
setcolor(bk);
line(x1,y1,x2,y2);
line(x1,y1,x1,y2+y2-y1);
line(x1,y1+y1-y2,x1+x1-x2,y2);
line(x1+x1-x2,y2,x1,y1);
getch();
vvod_cveta(cc);
}
void peremeshenie()
{int iq;
int bp=getbkcolor();
ris();
while(iq!=0)
{setcolor(bp);
line(x1,y1,x2,y2);
line(x1,y1,x1,y2+y2-y1);
line(x1,y1+y1-y2,x1+x1-x2,y2);
line(x1+x1-x2,y2,x1,y1);
switch(int(getch()))
{case 87:y1=(y1+10);y2=(y2+10);break;
case 81:y1=(y1-10);y2=(y2-10);break;
case 69:x1=(x1-10);x2=(x2-10);break;
case 82:x1=(x1+10);x2=(x2+10);break;
default:iq=0;}
ris();
}
}
};
class diag :p ublic romb
{protected:
int color2;
public:
diag(int x3,int y3,int x4,int y4,int sc1,int sc2):romb(int x3,int y3,int x4,int y4,int sc1)
{{color2=sc2;}
void vvod_cveta(int cl)
{color2=cl;}
int get_color2()
{return color2;}
void ris2()
{ setcolor(color2);
line(x1,y1,x1,y2+y2-y1);
line(x2,y2,x1+x1-x2,y2);
}
void gashenie2()
{int bk2=getbkcolor();
int cc1=color;
int cc2=color2;
setcolor(bk2);
line(x1,y1,x1,y2+y2-y1);
line(x2,y2,x1+x1-x2,y2);
getch;
vvod_cveta(cc1);
vvod_cveta(cc2);
}
void peremeshrnie2()
{int qu;
int bk_=getbkcolor();
ris2();
while(qu!=0)
{setcolor(bk_);
line(x1,y1,x1,y2+y2-y1);
line(x2,y2,x1+x1-x2,y2);
setcolor(bk_);
line(x1,y1,x1,y2+y2-y1);
line(x2,y2,x1+x1-x2,y2);
switch(int(getch()))
{case 87:y1=(y1+10);y2=(y2-10);break;
case 81:y1=(y1-10);y2=(y2-10);break;
case 69:x1=(x1-10);x2=(x2-10);break;
case 82:x1=(x1+10);x2=(x2+10);break;
default:qu=0;}
ris();
}
}
}
;}
void vvod_cveta(Romb&diag);
void ris(Romb&diag);
void hide(Romb&diag);
void peremeshenie(Romb&diag);
void vvod_koord(Romb&diag);
void main()
{int vibor;
clrscr();
do
{
cout << "\n 1-sozdanie romba";
cout << "\n 2-izmenenie koordinat,cveta romba";
cout << "\n 3-risovanie romba";
cout << "\n 4-gashenie romba";
cout << "\n 5-peremeshenie romba";
cout << "\n 0-vihod";
cin>> vibor;
switch(vibor)
{case 1:romb, romb(0,0,0,0,0,0);break;
case 2:vvod_koordn;break;
case 3:ris;break;
case 4:gashenie;break;
case 5 :p eremeshenie;break;
default:vibor=0;}
}while(vibor!=0);
}
void vvod_koord(Romb &rom)
{int n,k,m,v;
cout << "\n vvedi x1";
cin>>n;
cout << "\n vvedi y1";
cin>>k;
cout << "\n vvedi x2";
cin>>m;
cout << "\n vvedi y2";
cin>>v;
void void ris(Romb&diag)
{int driver = DETECT;
int mode = 0;
initgraph(&driver,&mode,"C:\\BORLANDC\\BGI");
romb.ris1();
diag.ris2();
}
void peremeshenie(Romb&diag)
{int driver = DETECT;
int mode = 0;
initgraph(&driver,&mode,"C:\\BORLANDC\\BGI");
.peremeshenie();
}
}
Вы это в Борланде писали. Так что уж извините, помочь, к сожалению, не смогу...