亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? line.cpp

?? 將數學上的線段作為一對象進行封裝成類,實現兩直線相交求交點等
?? CPP
字號:
// Line.cpp: implementation of the Line class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "RDProfile.h"
#include "Line.h"
#include "math.h"
#include "Angle.h"
#define PI  3.1415926



#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

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

Line::Line()
{

}

Line&  Line::operator =(Line l)
{
   Start.x=l.Start.x;
   Start.y=l.Start.y;
   End.x=l.End.x;
   End.y=l.End.y;
   Offset=l.Offset;

   return *this;
}

Point Line::Inersection(Line l)
{
  double k1,k2,d1,d2,x,y,x1,x2,y1,y2;
  Angle dir1,dir2;
  dir1.Att(End.x-Start.x,End.y-Start.y,&dir1,&d1);
  dir2.Att(l.End.x-l.Start.x,l.End.y-l.Start.y,&dir2,&d2);
  x1=Start.x;
  y1=Start.y;
  x2=l.Start.x;
  y2=l.Start.y;
  k1=tan(dir1.rad);
  k2=tan(dir2.rad);  
  x=(y2-x2*k2+x1*k1-y1)/(k1-k2);
  y=(x-x1)*k1+y1;
	    
  Point t(x,y);
  return t;
}

BOOL  Line::Nearest(Point p,  Point* IntersP,double* dist)
{
  double k1,k2,d1,x1,x2,y1,y2;
  Angle dir1,dir2,LocalDirection;
  dir1.Att(End.x-Start.x,End.y-Start.y,&dir1,&d1);
  LocalDirection=dir1;
  dir2.RadCreate(dir1.rad+PI/2);
  dir2.TurnToCircle();
  x1=Start.x;
  y1=Start.y;
  x2=p.x;
  y2=p.y;
  k1=tan(dir1.rad);
  k2=tan(dir2.rad);  
  (*IntersP).x=(y2-x2*k2+x1*k1-y1)/(k1-k2);
  (*IntersP).y=((*IntersP).x-x1)*k1+y1;
  //dir1.Att((*IntersP).x-p.x,(*IntersP).y-p.y,&dir1,dist);
  //if(IsInTheRightSide(p.x,p.y)==TRUE)
	//  *dist=(*dist)*(-1.);
  //判斷P在線路左右側,P在左*dist為正,反之為負
  Point LocalP;
  LocalP=LocalP.Rotate(Start,p.x,p.y,LocalDirection.rad,false);
  //dir1.Att(LocalP.x,LocalP.y,&LocalDirection,dist);
  *dist=LocalP.y;
 
  /*
  Angle att1,att2;
  Point jd,tEnd,tjd;
  double dist1,dist2;
  BOOL flag=TRUE;
  att1.Att(End.x-Start.x,End.y-Start.y,&att1,&dist1);
  att2.Att(p.x-Start.x,p.y-Start.y,&att2,&dist2);
  if(att1.dms<=90)
	{if((att2.dms<att1.dms)||(att2.dms>270)) 
	  flag=FALSE;
	}
 else if((att1.dms<=180)&&(att1.dms>00))
	{if(att2.dms<att1.dms)
	  flag=FALSE;
	}
 else if(att1.dms<=270)
	{
     if((att2.dms<att1.dms)&&(att2.dms>(att1.dms-180)))
		 flag=FALSE;
	}
 else if(att1.dms<359.59599999)	 
 {
	 if(((att2.dms>(att1.dms-180))&&(att2.dms<att1.dms)))
		 flag=FALSE;
 }


  if (flag==TRUE)
	  *dist=(*dist)*(-1.0);
  
  *dist=(*dist)*(-1.0);
   return flag;
   */
  if((*dist)<0)
	  return true;
  else
	  return false;
}
BOOL Line::Nearest(double x,double y,  Point* IntersP,double* dist)
{
  Point p(x,y);
   return Nearest(p,IntersP,dist);
}

BOOL  Line::IsInTheLine(Point P,double det)
{
  Point LocalP,LocalEnd;
  Angle dir0;
  double dist;
  dir0.Att(End.x-Start.x,End.y-Start.y,&dir0,&dist);

  LocalP=LocalP.Rotate(Start,P.x,P.y,dir0.rad,false);
  LocalEnd=LocalP.Rotate(Start,End.x,End.y,dir0.rad,false);
  if(fabs(LocalP.y)<0.0004)
  {
    if((LocalP.x>=0)&&(LocalP.x<=LocalEnd.x))
	  return true;
   }

  return false;
  
	
   /*
   Angle dir1,dir2,angle;
   double d1,d2;
   dir1.Att(End.x-Start.x,End.y-Start.y,&dir1,&d1);
   dir2.Att(P.x-Start.x,P.y-Start.y,&dir2,&d2);
   angle=dir1-dir2;
   /*
   if(angle.rad<0)
	   angle.RadCreate(-angle.rad);
   double t=d2*sin(angle.rad);
   if(t<0.005)
	   return TRUE;
   
   
   if(((angle.rad<0.0001)||((angle.dms>359.5959999)&&(angle.rad<360.0001)))&&(d2<=d1))
	   return TRUE;
   else
	   return FALSE;

  */
	}


BOOL  Line::IsInTheLine(double x,double y,double det)
{
      Point p(x,y);
      return IsInTheLine(p);
}	

BOOL  Line::IsInTheRightSide(double x,double y)
{

  Point LocalP;
  Angle dir0;
  double dist;
  dir0.Att(End.x-Start.x,End.y-Start.y,&dir0,&dist);
  LocalP=LocalP.Rotate(Start,x,y,dir0.rad,false);
  if(LocalP.y>0)
     return true;
  return false;
    

/*
  Angle att1,att2;
  Point jd,tEnd,tjd;
  double dist,a,b,c;
  att1.Att(End.x-Start.x,End.y-Start.y,&att1,&dist);
  Nearest(x,y,&jd,&c);
  if(c<0.0004)
	  return false;
  att2.Att(x-Start.x,y-Start.y,&att2,&b);
  att2.Att(jd.x-Start.x,jd.y-Start.y,&att2,&a);
  //att2.rad=acos((a*a+b*b-c*c)/(2*a*b));
  att2.RadCreate(acos((a*a+b*b-c*c)/(2*a*b)));

  if(att1.dms<=90)
	{if((att2.dms<att1.dms)||(att2.dms>270)) 
	  return FALSE;
	}
 else if((att1.dms<=180)&&(att1.dms>00))
	{if(att2.dms<att1.dms)
	  return FALSE;
	}
 else if(att1.dms<=270)
	{
     if((att2.dms<att1.dms)&&(att2.dms>(att1.dms-180)))
		 return FALSE;
	}
 else if(att1.dms<359.5958)	 
 {
	 if(((att2.dms>(att1.dms-180))&&(att2.dms<att1.dms)))
		 return FALSE;
 }
 
  return TRUE;
  
*/


}


Point Line::GetCentrlPoint(double l0,Angle* RoadDirection,double dist)
{

	Angle dir1;
	double d;
	Point p;


	dir1.Att(End.x-Start.x,End.y-Start.y,&dir1,&d);
	
    (*RoadDirection).RadCreate(dir1.rad);

	p.x=Start.x+l0*cos(dir1.rad);
    p.y=Start.y+l0*sin(dir1.rad);

	if(dist>0)
		dir1.rad=dir1.rad+PI/2;
	else if(dist<0)
		dir1.rad=dir1.rad-PI/2;
	dir1.RadCreate(dir1.rad);
	dist=fabs(dist);
    if(dist>0)
	{
		p.x=p.x+dist*cos(dir1.rad);
     p.y=p.y+dist*sin(dir1.rad);
	}
	
   return p;
}




Line::~Line()
{

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美系列亚洲系列| 色狠狠色狠狠综合| 狠狠色丁香久久婷婷综| 亚洲成av人片一区二区梦乃| 中文字幕中文字幕中文字幕亚洲无线| 中文字幕一区二区三中文字幕| 成人精品一区二区三区中文字幕| 成人免费视频视频| 久久久国产午夜精品| 国产精品12区| 亚洲午夜成aⅴ人片| 欧美三区在线观看| 日韩精品免费专区| 欧美精品一区二区三区四区| 国产精品乡下勾搭老头1| 国产欧美一区二区精品忘忧草| 偷窥少妇高潮呻吟av久久免费| 91在线无精精品入口| 国产欧美日韩另类一区| 亚洲成人免费在线观看| 99久久精品免费精品国产| 久久久一区二区| 日本不卡中文字幕| 日韩一区二区三区免费观看| 亚洲精品国产a| 日本aⅴ亚洲精品中文乱码| 在线国产亚洲欧美| 亚洲老司机在线| 秋霞国产午夜精品免费视频| 欧美日韩免费视频| 亚洲精品欧美二区三区中文字幕| 亚洲一区二区三区免费视频| 午夜av电影一区| 色婷婷综合视频在线观看| 国产日韩av一区| 国模套图日韩精品一区二区| 9191久久久久久久久久久| 精品1区2区在线观看| 亚洲欧美在线高清| 亚洲成人黄色小说| 日本丶国产丶欧美色综合| 中文字幕一区二区三区乱码在线| 日韩一级精品视频在线观看| 蜜桃av一区二区三区| 中文字幕在线观看不卡| 精品噜噜噜噜久久久久久久久试看| zzijzzij亚洲日本少妇熟睡| 国产又粗又猛又爽又黄91精品| 午夜婷婷国产麻豆精品| 亚洲色图.com| 中国av一区二区三区| 色综合久久久久网| 亚洲成a人片综合在线| 欧美午夜视频网站| 男人的j进女人的j一区| 欧美一区二区三区小说| 首页综合国产亚洲丝袜| 国产午夜精品福利| 色一情一伦一子一伦一区| 一区二区三区精品久久久| 97se亚洲国产综合自在线观| 亚洲精品一二三| 久久亚洲欧美国产精品乐播| 日韩一区二区三区四区五区六区| 五月天激情综合网| 91久久线看在观草草青青| 婷婷综合另类小说色区| 精品国产凹凸成av人导航| 风间由美中文字幕在线看视频国产欧美| 亚洲同性gay激情无套| 91激情五月电影| 日日夜夜精品视频免费| 91精品在线观看入口| 亚洲国产视频在线| 日韩久久免费av| 亚洲成a人片综合在线| 91麻豆精品国产综合久久久久久| 国产成人午夜高潮毛片| 日韩精品91亚洲二区在线观看| 国产一区999| 一区二区三区精品在线| 亚洲靠逼com| 午夜不卡av在线| 国产一区欧美日韩| 色一情一乱一乱一91av| 欧美一二三区在线观看| 久久精品欧美一区二区三区不卡| 亚洲女人小视频在线观看| 亚洲国产视频一区二区| 亚洲va韩国va欧美va| **网站欧美大片在线观看| 日本一区二区综合亚洲| 国产网站一区二区三区| 精品日韩一区二区三区免费视频| 欧美日韩国产欧美日美国产精品| 欧美日韩一二三区| 欧美在线视频全部完| 成人免费观看男女羞羞视频| av在线不卡电影| 色婷婷激情综合| 色诱亚洲精品久久久久久| 国产一区二区主播在线| 91久久精品一区二区三| 欧美一区二区三区免费视频| 欧美丝袜丝nylons| 成人妖精视频yjsp地址| 顶级嫩模精品视频在线看| 色综合天天视频在线观看| 在线观看亚洲a| 欧美性猛片aaaaaaa做受| 丰满少妇在线播放bd日韩电影| 亚洲超碰97人人做人人爱| 亚洲天堂免费看| 天堂av在线一区| 国产盗摄精品一区二区三区在线 | 亚洲一区二区三区影院| 丝袜a∨在线一区二区三区不卡| 91婷婷韩国欧美一区二区| 欧美国产一区二区| 成人激情免费电影网址| 日韩欧美自拍偷拍| 老司机精品视频在线| 成人av网站大全| 777午夜精品视频在线播放| 欧美成人精品二区三区99精品| 亚洲欧洲国产日韩| 亚洲另类中文字| 狠狠色丁香婷综合久久| gogo大胆日本视频一区| 欧美精品乱码久久久久久按摩| 久久精品人人做人人爽97| 亚洲自拍与偷拍| 日本系列欧美系列| 在线日韩国产精品| 欧美电影在线免费观看| 18成人在线观看| 欧美日韩在线电影| 精品久久人人做人人爰| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 久久精品国产一区二区| 精品一区二区在线观看| 欧美三级日本三级少妇99| 中文字幕欧美三区| 欧美性一区二区| 最新欧美精品一区二区三区| 91免费视频网| 视频在线观看国产精品| 日韩欧美在线网站| 国产91精品免费| 亚洲欧美激情小说另类| 7878成人国产在线观看| 91麻豆免费在线观看| 午夜电影一区二区三区| 国产视频一区二区在线| 成人蜜臀av电影| 欧美激情一区二区三区在线| 国产成人aaaa| 国产亚洲欧洲997久久综合| 欧美一区二区视频观看视频| 亚洲成精国产精品女| 欧美老年两性高潮| 青青草国产精品亚洲专区无| 欧美日韩免费高清一区色橹橹| 午夜精品久久久久久久99水蜜桃| 欧美三区在线观看| 亚洲黄色小说网站| 日本黄色一区二区| 亚洲一区二区三区国产| 91久久精品国产91性色tv| 紧缚奴在线一区二区三区| 精品成a人在线观看| 久久国内精品自在自线400部| jizzjizzjizz欧美| 一区二区三区中文免费| 日韩视频免费观看高清完整版在线观看| 蜜桃免费网站一区二区三区| 成人不卡免费av| 亚洲va天堂va国产va久| 中文字幕中文字幕在线一区 | 日韩成人一区二区三区在线观看| 中文字幕亚洲一区二区va在线| 精品国产乱码久久久久久浪潮| 3d成人h动漫网站入口| 91色乱码一区二区三区| 国内精品视频一区二区三区八戒 | 成人毛片在线观看| 亚洲人成电影网站色mp4| 欧美一区二区三区公司| 成人激情动漫在线观看| 另类综合日韩欧美亚洲| 日本一区二区免费在线| 欧美日本在线观看| 成人性生交大片免费看中文| 婷婷综合另类小说色区| 久久久久9999亚洲精品| 欧美日韩专区在线| jlzzjlzz欧美大全| 欧美性欧美巨大黑白大战| 91精品福利视频| 午夜不卡av在线|