1. 程式人生 > >根據夾角求橢圓上的點

根據夾角求橢圓上的點



設長軸為a,短軸為b(題設缺少橢圓圓心就是原點的條件)
則橢圓方程為:
x^2/a^2+y^2/b^b=1
設未知點與原點的連線與x軸正半軸的夾角為θ
則該點與原點的連線 直線方程為:
y=(tanθ) x
聯立兩個方程可解得兩個座標點,排除其中一個夾角為θ+180°的點
得到答案!

double a=92*2;
 double b=128*2;

 for (int i=0;i!=360;i+=10)
 {
  double _tan=tan(i*M_PI/180);

  qreal x=sqrt(1.0/((1.0/pow(_tan,2))*(1.0/pow(a,2))+(1.0/pow(b,2))));
  qreal y=sqrt(1.0/(1.0/(pow(a,2))+pow(_tan,2)*(1.0/pow(b,2))));
  

  if (i<90||i>270)
  {
   y=-y;
  }

  if (i>180)
  {
   x=-x;
  }

  myScene->addEllipse(x,y,5,5,QPen(Qt::red));
 }