Скачиваний:
11
Добавлен:
01.05.2014
Размер:
2.85 Кб
Скачать
//File cpoint.cpp
//Naznachenie: Opredelenie funkcij klassa "Tochka"
//Author: Pavel Morozov
//Redakcija: 2.0 13.04.07

#ifndef cpoint_cpp
#define cpoint_cpp

#include<iostream.h>
#include<math.h>
#include<conio.h>
#include<stdio.h>

#include"cpoint.h"


//-------------------Konstruktor----------------------------------
CPoint::CPoint(float x0,float y0 ):ID(HistNum+1) //Pervyj konstruktor

			{
			  x=x0; y=y0;
             textcolor(9);
             HistNum=HistNum+1;
	     Counter++;
	     cout<<endl;
	     cprintf("Konstruktor CPoint sozdal objekt s ID = ");
	     cout<<GetID();
	     cprintf(", HistNum= ");
	     cout<<GetHistNum();
             cprintf(", Counter= ");
	     cout<<GetCounter()<<endl;
             cprintf("x = ");
             cout<<x0<<endl;
             cprintf("y = ");
             cout<<y0<<endl;
             textcolor(15);
			}

		CPoint::CPoint( CPoint &Q ) //Konstruktor kopirovanija			{
		{

			  x=Q.x;
			  y=Q.y;


		  }

//-------------Funkcii interfejsa------------------------------------

		void CPoint:: SetX( float x0,float y0 ) //Zadanie znachenij elementov spiska
			{
			  x=x0;
			  y=y0;			}

		


		void CPoint::GetX( float &x0, float &y0) //Poluchenie znachenij elementov
			{
			  x0=x; y0=y;
			}

	       void CPoint::MovePoint( float dx, float dy )
               {



	     //Atributy
	    float x0,y0;

	


		 GetX(x0,y0);
		 x0=dx+x0;
		 y0=dy+y0;
	         SetX(x0,y0);
		



                }


	       void CPoint::RotatePoint( CPoint &Q, float  fi )
{

	     //Atributy
	    float x0,y0,r,fi2;

	       Q.GetX(dx,dy);
               GetX(x0,y0);
	       x0=x0-dx;//smeshenie koordinat v tochku povorota
	       y0=y0-dy;
	       r=sqrt(x0*x0+y0*y0);
	       if(r!=0)
	       {fi2=acos(x0/r)*180/M_PI;}
	       else fi2=0;
	      // if(x0<0)
	      // {fi2=M_PI-fi2;}
	       fi2=fi+fi2;
	       x0=r*cos(M_PI*fi2/180);
	       if(r!=0)
	       {fi2=asin(y0/r)*180/M_PI;}
               else fi2=0;
	       fi2=fi+fi2;
	       y0=r*sin(M_PI*fi2/180);
	       x0=x0+dx;//smeshenie koordinat к ishodnoi sk
	       y0=y0+dy;

               SetX(x0,y0);



}

unsigned int CPoint::GetID()
//Poluchit ukazatel na predydushij element
		    { return ID;}

unsigned int CPoint::GetHistNum()
// Poluchit kolichestvo sozdannyh objektov
{ return HistNum;}


unsigned int CPoint::GetCounter()
// Poluchit kolichestvo sushestvujushih objektov
{return Counter;}

//--------------------Destruktor-------------------------------------
		CPoint::~CPoint()
		{Counter--;
textcolor(10);
cout<<endl;
cprintf("Objekt klassa CPoint byl unichtozen");
cout<<endl;
cprintf("Destruktor CPoint unichtozyl objekt s ID= ");
cout<<GetID()<<endl;
textcolor(15);
}

#endif
Соседние файлы в папке LAB 3