?? geometry.h
字號:
#ifndef _analytic_geometry
#define _analytic_geometry
#include "Globe.h"
typedef struct tagLineFormulation{
double a;
double b;
double c;
}Formulation, LINEFORMULATION;
typedef struct tagCircleFormulation{
double x;
double y;
double r;
}CircleFormulation, CIRCLEFORMULATION;
/********* chen ning **************/
int CalcuFormat(POINT P2, POINT P1, Formulation *Param);//aY=bX+c
int gmFormulate(POINT P1, POINT P2, Formulation *FormuParam);//aX+bY+c=0
int StdLineForm(dbPOINT P1, dbPOINT P2, Formulation *FormuParam);//aX+bY+c=0
int StdLineForm(dbPOINT point, double angle, LINEFORMULATION *Result);//點斜式得出標準方程
int cn_PointSlopeLine(dbPOINT point, double angle, LINEFORMULATION *Result);//點斜式得出標準方程
int cn_2LinesCrossPoint(Formulation *Line1, Formulation *Line2, dbPOINT *Result);//兩直線交點
int cn_2LinesCrossPoint(dbPOINT A1, dbPOINT A2, dbPOINT B1, dbPOINT B2, dbPOINT *Result);
int cn_2SectionsCross(POINT A, POINT B, POINT C, POINT D, POINT* P);//obslete
int cn_2SectionsCross(dbPOINT A, dbPOINT B, dbPOINT C, dbPOINT D, dbPOINT* P);//兩線段交點
int cn_LineCircleCross(LINEFORMULATION *pLine, CIRCLEFORMULATION *pCircle, dbPOINT *Point1, dbPOINT *Point2);//直線和圓的交點
int cn_LineCircleCross(dbPOINT A, dbPOINT B, CIRCLEFORMULATION *pCircle, dbPOINT *Point1, dbPOINT *Point2);//直線和圓的交點
double cn_LineAngle(LINEFORMULATION *pLine);//直線與x軸的夾角
double cn_LineAngle(dbPOINT A, dbPOINT B);//直線與x軸的夾角
double cn_LineAngle(POINT A, POINT B);
int cn_PointPerpendLine(dbPOINT Point, LINEFORMULATION *pLine, LINEFORMULATION *pResult, dbPOINT *pPointCross);//過一點垂直于一條直線的方程和交點
int cn_PointPerpendLine(dbPOINT Point, dbPOINT A, dbPOINT B, LINEFORMULATION *pResult, dbPOINT *pPointCross);//過一點垂直于一條直線的方程和交點
int cn_DistanceLines(LINEFORMULATION *pRefLine, double Distance, LINEFORMULATION *Result1, LINEFORMULATION *Result2);//與一條直線相距一定距離的直線方程
int cn_2CirclesCross(CIRCLEFORMULATION *pCircle1, CIRCLEFORMULATION *pCircle2, dbPOINT *Point1, dbPOINT *Point2);//兩圓的交點
double cn_PointLineDist(POINT P, POINT A, POINT B);//點到直線的距離
double cn_PointLineDist(dbPOINT P, dbPOINT A, dbPOINT B);//點到直線的距離
double cn_PointLineDist(dbPOINT Point, LINEFORMULATION *Line);//點到直線的距離
double cn_2PointsDist(dbPOINT A, dbPOINT B);//兩點間距離
double distRobot2Pt(RobotInford robot,dbPOINT point);//車到點的距離
double cn_2PointsDist(POINT A, POINT B);
double cn_AngleTrim2PI(double theta);//變化角度到2*pi
double cn_AngleTrimPI(double theta);//變化角度到pi
int cn_IsPointInSegment(dbPOINT Pt, dbPOINT A, dbPOINT B);//判斷點是否在線段內
int cn_IsPointInArc(dbPOINT Pt, CIRCLEFORMULATION *pCircleFormulation, double sTheta, double dTheta);//判斷點是否在弧內
int cn_ArcSegmentCross( CIRCLEFORMULATION *pCircleFormulation, double sTheta, double dTheta, dbPOINT A, dbPOINT B, dbPOINT *pResultA, dbPOINT *pResultB);//弧與線段的交點
double cn_RefractAngle(POINT A, POINT B, POINT C, POINT D);
double cn_RefractAngle(dbPOINT A, dbPOINT B, dbPOINT C, dbPOINT D);
int IsInVectorRegion(POINT A, POINT P1, POINT P2);
int IsInObject(POINT A, POINT *points, int number);
int IsInObject(POINT A, POINT O, int radian);
int gmIsInVectorRegion(POINT A, POINT P1, POINT P2);
int cn_VectorRegion(dbPOINT A, dbPOINT P1, dbPOINT P2);
int cn_VectorRegion(POINT A, POINT P1, POINT P2);
int cn_PointInLineSegment(dbPOINT A, dbPOINT B, double Distance, dbPOINT *Result);
int cn_PointDistanceInLine(dbPOINT A, dbPOINT B, double Distance, dbPOINT *Result1, dbPOINT *Result2);
int cn_LineSegmentHoldin(dbPOINT P, dbPOINT A, dbPOINT B);
void CoordinateTransform(dbROBOTPOSTURE *pNewCoordiante, dbPOINT Target, dbPOINT *Result);
int cn_SegmentBreak(SEGMENT *pSegment, dbPOINT SrcPoint, dbPOINT ObtPoint, double Radius, SEGMENT *pSegment1, SEGMENT *pSegment2);//求出無障礙通道
int cn_SegmentBreak(SEGMENT *pSegment, int Number, dbPOINT SrcPoint, dbPOINT ObtPoint, double Radius);//求出無障礙通道
/*********** end ************/
/************ zhou yunlong **************/
int MiddleVerticalLine(dbPOINT point1, dbPOINT point2,Formulation *Formu);
int PointToPointDirectionAngle(dbPOINT Point1,dbPOINT Point2,double *pAngle);
/************ end *******************/
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -