sphere.cpp vector3.h vector3.cpp(暂存)

#include <iostream.h>
#include <math.h>
#include "vector3.h"

#define PI 3.1415926

int main()
{
 

 return 1;
}


vector3 b0,b2,b1;

void GetXZY(float t0,float x,float y,float z)
{
 const double angle00=0.0;
 const double angle01=0.0;
 const double angle10=PI/6;
 const double angle11=PI/3;


 b0.x=cos(angle00);
 b0.y=sin(angle00) * cos(angle01);
 b0.z=sin(angle00) * sin(angle01);


 b2.x=cos(angle10);
 b2.y=sin(angle10) * cos(angle11);
 b2.z=sin(angle10) * sin(angle11); 

 cout<<b0.x<<" "<<b0.y<<"  "<<b0.z<<"  "<<endl;
 cout<<b2.x<<" "<<b2.y<<"  "<<b2.z<<"  "<<endl;

 float ccos,ssin,ssin2,ttg;
 ccos=vector3::Magnitude(b0+b2)/2;
 ssin=sqrt(1.0-ccos);
 ssin2=2.0*ccos*ssin;
 cout<<ccos<<endl;
 ttg=ssin/ccos;

 float k=0;


 float t=3*PI/2;
 k=ttg*sin(t)/cos(t);


 vector3 b11,b22,b33;
 b11=(b0+b2)/(2.0*ccos*ccos);
 b22=vector3::cross(b0,b2);
 b33=b22*k;
 b1=b11+b33/(ssin2);
 float w;
// w=ssin/(sqrt(k*k+ttg*ttg));
 w=ccos*cos(t);

 float xt,yt,zt;

 xt=(b0.x*(1-t0)*(1-t0)+b1.x*w*2.0*t0*(1-t0)+b2.x*t0*t0)/(t0*t0+w*2.0*t0*(1-t0)+(1-t0)*(1-t0));
 yt=(b0.y*(1-t0)*(1-t0)+b1.y*w*2.0*t0*(1-t0)+b2.y*t0*t0)/(t0*t0+w*2.0*t0*(1-t0)+(1-t0)*(1-t0));
 zt=(b0.z*(1-t0)*(1-t0)+b1.z*w*2.0*t0*(1-t0)+b2.z*t0*t0)/(t0*t0+w*2.0*t0*(1-t0)+(1-t0)*(1-t0));


 float xtDao,ytDao,ztDao;

 xtDao=((t0*t0+w*2.0*t0*(1-t0)+(1-t0)*(1-t0)) * (-2.0*(1-t0)*b0.x+2.0*b1.x*w*(1.0-2*t)+2.0*t0*b2.x)-(b0.x*(1-t0)*(1-t0)+b1.x*w*2.0*t0*(1-t0)+b2.x*t0*t0)*(-2.0*(1-t0)+2.0*w*(1.0-2.0*t0)+2.0*t0))/(t0*t0+w*2.0*t0*(1-t0)+(1-t0)*(1-t0))*(t0*t0+w*2.0*t0*(1-t0)+(1-t0)*(1-t0));
 ytDao=((t0*t0+w*2.0*t0*(1-t0)+(1-t0)*(1-t0)) * (-2.0*(1-t0)*b0.y+2.0*b1.y*w*(1.0-2*t)+2.0*t0*b2.y)-(b0.y*(1-t0)*(1-t0)+b1.y*w*2.0*t0*(1-t0)+b2.y*t0*t0)*(-2.0*(1-t0)+2.0*w*(1.0-2.0*t0)+2.0*t0))/(t0*t0+w*2.0*t0*(1-t0)+(1-t0)*(1-t0))*(t0*t0+w*2.0*t0*(1-t0)+(1-t0)*(1-t0));
 ztDao=((t0*t0+w*2.0*t0*(1-t0)+(1-t0)*(1-t0)) * (-2.0*(1-t0)*b0.z+2.0*b1.z*w*(1.0-2*t)+2.0*t0*b2.z)-(b0.z*(1-t0)*(1-t0)+b1.z*w*2.0*t0*(1-t0)+b2.z*t0*t0)*(-2.0*(1-t0)+2.0*w*(1.0-2.0*t0)+2.0*t0))/(t0*t0+w*2.0*t0*(1-t0)+(1-t0)*(1-t0))*(t0*t0+w*2.0*t0*(1-t0)+(1-t0)*(1-t0));

 float u,v;

 u=cos(d);
 v=xt*xtDao+yt*ytDao+zt*ztDao;


 float a0,a1,a2;
 
 a0=yt*xtDao-ytDao*xt;
 a1=zt*xtDao-ztDao*xt;
 a3=u*xtDao-v*xt;

 

 


}


// vector3.cpp: implementation of the vector3 class.
//
//////////////////////////////////////////////////////////////////////

#include "vector3.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

vector3::vector3()
{

}

vector3::~vector3()
{

}

vector3::vector3(float X,float Y,float Z)
{
 x=X;
 y=Y;
 z=Z;
}

vector3 vector3::operator+(vector3 vec)
{
 return vector3(vec.x+x,vec.y+y,vec.z+z);
}

vector3 vector3::operator/(float num)
{
 return vector3(x/num,y/num,z/num);
}

vector3 vector3::operator *(float num)
{
 return vector3(x*num,y*num,z*num);
}

vector3 vector3::operator -(vector3 vec)
{
 return vector3(x-vec.x,y-vec.y,z-vec.z);
}




// vector3.h: interface for the vector3 class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_VECTOR3_H__9D307D56_CFF5_4D76_9106_196D2ACCE855__INCLUDED_)
#define AFX_VECTOR3_H__9D307D56_CFF5_4D76_9106_196D2ACCE855__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <math.h>
class vector3 
{
public:
 vector3();
 virtual ~vector3();
 vector3(float X,float Y,float Z);
 vector3 operator+(vector3 vec);
 vector3 operator/(float num);
 vector3 operator*(float num);
 vector3 operator-(vector3 vec);
 static inline float Magnitude(vector3 vNormal)
 {
  return (float)sqrt((vNormal.x*vNormal.x)+(vNormal.y*vNormal.y)+(vNormal.z*vNormal.z));
 }

 static inline vector3 cross(vector3 vec1,vector3 vec2)
 {
  vector3 vNormal;
  vNormal.x=vec1.y*vec2.z-vec1.z*vec2.y;
  vNormal.y=vec1.z*vec2.x-vec1.x*vec2.z;
  vNormal.z=vec1.x*vec2.y-vec1.y*vec2.x;
  return vNormal;
 }
public:
 float x,y,z;
};

#endif // !defined(AFX_VECTOR3_H__9D307D56_CFF5_4D76_9106_196D2ACCE855__INCLUDED_)

posted on 2007-08-14 21:55  Wenguan  阅读(426)  评论(0)    收藏  举报

导航