Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / Labs 2004 / LAB4 / BC31 / DOS

.CPP
Скачиваний:
22
Добавлен:
16.04.2013
Размер:
2.43 Кб
Скачать
//Їа®Ја ¬¬  аЁбгҐв ¤ўЁ¦г饥бп ⥫®
// ў бЁб⥬Ґ DOS
//®бв ­®ўЄ  Ё Їа®¤®«¦Ґ­ЁҐ Їа®Ја ¬¬л - ­ ¦ вЁҐ «оЎ®© Є« ўЁиЁ
//ўл室 Ё§ Їа®Ја ¬¬л - Esc

#include <graphics.h>
#include <bios.h>
#include <math.h>
#include <dos.h>
#include <stdio.h>
#include <process.h>
#include <conio.h>



//Ј«®Ў «м­лҐ ЇҐаҐ¬Ґ­лҐ
double x1, x2, y1, y2;
int n1, n2, m1, m2;
int iStep = 0;


//ЇҐаҐе®¤ ®в x Є ЇЁЄбҐ«о n
inline int xn(double x)
{
	return (int)((x - x1)/(x2 - x1)*(n2 - n1)) + n1;
}


//ЇҐаҐе®¤ ®в y Є ЇЁЄбҐ«о m
inline int ym(double y)
{
	return (int)((y - y1)/(y2 - y1)*(m2 - m1)) + m1;
}


//дг­ЄжЁп ®бв ­ ў«Ёў Ґв ўлЇ®«­Ґ­ЁҐ Їа®Ја ¬¬л ЇаЁ ­ ¦ вЁЁ
//«оЎ®© Є« ўЁиЁ, ЇаЁ ¤ «м­Ґ©и¬ ­ ¦ вЁЁ «оЎ®© Є« ўЁиЁ
//Їа®Ја ¬¬  Їа®¤®«¦ Ґв ўлЇ®«­Ґ­ЁҐ
//ўл室 Ё§ Їа®Ја ¬¬л - Esc
void StopRunQuit()
{
  union inkey   //ў н⮬ ®ЎкҐ¤Ё­Ґ­ЁЁ еа ­Ёвбп Ё­д®а¬ жЁп ® ­ ¦ в®© Є« ўЁиҐ
  {                         //ch[0] -¬« ¤иЁ© Ў ©в (ASCII Є®¤)
	 unsigned char ch[2];    //ch[1] -бв аиЁ© Ў ©в (Є®¤ бЄ ­Ёа®ў ­Ёп Є« ўЁиЁ)
	 int i;                  //i -®ЎкҐ¤Ё­Ґ­ЁҐ ¤ўге Ў ©в ў б«®ў®
  } c;


		if(kbhit())
		{
			c.i = bioskey(0);
			if(c.ch[0] == 27 && c.ch[1] == 1)
			{
				closegraph();
				exit(0);
			}

			while(!kbhit());

			c.i = bioskey(0);
			if(c.ch[0] == 27 && c.ch[1] == 1)
			{
				closegraph();
				exit(0);
			}
		}
}





void main()
{

	x1 = -2; x2 = 2; y1 = -2; y2 = 2;
	n1 = 50; n2 = 450; m1 = 450; m2 = 50;



//Ї®¤Є«о祭ЁҐ Ја дЁзҐбЄ®© ЎЁЎ«Ё®вҐЄЁ
  int mode;
  int res;
  int driver = DETECT;
  initgraph(&driver, &mode,"c:\\borlandc\\bgi");
  if((res = graphresult()) != grOk)
  {
	 printf("\nGraphics error: %s\n", grapherrormsg(res));
	 exit(1);
  }

	moveto(n1,m1);
	lineto(n2,m1);
	lineto(n2,m2);
	lineto(n1,m2);
	lineto(n1,m1);


//гб ­®ўЄ  ЇҐа : 1) бвЁ«м - бЇ«®и­®©
				 //  2) в®«йЁ­  «Ё­Ё© - 3 ЇЁЄбҐ«п
				 //  3) 梥⠫Ё­Ё© - ᢥ⫮-Єа б­л©
  setlinestyle(SOLID_LINE,0,3);
  setcolor(LIGHTRED);


	double dfi, dr, xb, yb, xe, ye;
	dfi = 10, dr = 0.2;
	xb = 0, yb = 0;

	do
	{

	delay(500);

	xe = dr*iStep*cos(M_PI/180*dfi*iStep);
	ye = dr*iStep*sin(M_PI/180*dfi*iStep);

	int nb, mb, ne, me;
	nb = xn(xb); mb = ym(yb);
	ne = xn(xe); me = ym(ye);

	moveto(nb,mb);
	lineto(ne,me);

	iStep++;

	StopRunQuit();

	}while(iStep<150);

  getch();
  closegraph();        //§ Єалў Ґ¬ Ја дЁзҐбЄго ЎЁЎ«Ё®вҐЄг



}
Соседние файлы в папке BC31