⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ellipsoid.h

📁 曲面加工程序源码,用C++编写的加工曲线曲面的程序
💻 H
字号:
#if !defined(__ellipsoid_h)
#define __ellipsoid_h


#include "vector.h"
#include "face.h"

class ellipsoid:public face {
 private:
	//-------------Difinition of ellipsoid-------------
	//
	//--basic quation of ellipsoid is
   //(xo/cx)^2+(yo/cy)^2+(zo/cz)^2==1

   //--machine coordinate
   //(x,y,z)

   //--rotation
   //t(theta)=rx_setup-rx_design
   //|xo|   | 1    0      0   | |x|   | 0|
   //|yo| = | 0  cos(t) sin(t)| |y| + |dy|
   //|zo|   | 0 -sin(t) cos(t)| |z|   |dz|
   //

   //--plane equation
   //y cos(rx_setup)+z sin(rx_setup)-h_plane==0

   //--constants
   // cx=cy=134.6465624
   // cz=1009.024131
   // dy=-53.7931
   // dz=-925.0
   // h_plane=11.6-1.64+2.

	//-------------------------------------------------
	double cx; //[mm]
	double cy; //[mm]
	double cz; //[mm]

   double dx; //[mm]
   double dy; //[mm]
   double dz; //[mm]

   double rx_design; //rotation around x-axis(form)  [deg]
   double rx_setup;//rotation araound x-axis(setup)  [deg]

   double h_plane;//plane height [mm]

   double z_top;//z_top[mm]

 public:
	// Constractor and destractor
	ellipsoid();
	virtual ~ellipsoid();

   //equations for calcuration
   bool InMirrorArea(double x,double y);
   bool InMirrorBody(double x,double y,double z);

   int AreaJudgement(double x,double y, double &z);
   
   double PlaneZ(double x,double y);

   double MirrorZ(double x,double y);
   double MirrorgradX(double x,double y);
   double MirrorgradY(double x,double y);
   double MirrorgradXX(double x,double y);
   double MirrorgradYY(double x,double y);

        //form equations
	double GetZ( double x, double y);
	vector GetPosition( double x, double y);

	double gradX(double x, double y);
	double gradY(double x, double y);
	double gradXX(double x, double y);
	double gradYY(double x, double y);

	// This is the normal vector of surface on the point(x,y).
	// This is toward the inside of troidal.
	// This.length is 1.
	vector NormalVector ( double x, double y);
	vector NormalVector ( vector position);

	////GradientVector////////////////////////////////////////////
	// This is one of tangential vactors on the tangential plane.
	// This is toward direction which has the largest gradient.
	// This length is 1.
	vector GradientVector(double x, double y);
	vector GradientVector( vector position);

	////NoGradientVector///////////////////////////////////////////
	// This is one of tangential vactors on the tangential plane.
	// This is toward direction which has no gradient.
	//// This length will be 1,
	//// and this Z-coordinate will be Zero.
	vector NoGradientVector(double x,double y);
	vector NoGradientVector(vector position);

	int WriteFaceName(ofstream&);
	int WriteParameters(ofstream&);

        //980519
        void SetParameter(TStringList *str);
        void GetParameter(TStringList *str);

};	//end of ellipsoid class
#endif




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -