|
|
|
|
|
#pragma once
|
|
|
|
|
|
#ifndef BASE_FUNCTION_EXTEND
|
|
|
|
|
|
#define BASE_FUNCTION_EXTEND
|
|
|
|
|
|
|
|
|
|
|
|
#include "SSBase/DrawModel/BaseFunction.h"
|
|
|
|
|
|
|
|
|
|
|
|
class AFX_EXT_CLASS CBaseFunctionExtend :public CBaseFunction
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CBaseFunctionExtend();
|
|
|
|
|
|
virtual ~CBaseFunctionExtend();
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
int IsSegmentCross(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4);
|
|
|
|
|
|
int LineCrossPoint(double x1, double y1, double k1, double x2, double y2, double k2, double& x0, double& y0);
|
|
|
|
|
|
|
|
|
|
|
|
double DotProduct(double x1, double y1, double x2, double y2);
|
|
|
|
|
|
double CrossProduct(double x1, double y1, double x2, double y2);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>߶εĽ<CEB5><C4BD>㣬<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>ޣ<EFBFBD><DEA3><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD>غϣ<D8BA><CFA3><EFBFBD><EFBFBD><EFBFBD>2.
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD> a,bΪֱ<CEAA><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lx0,ly0Ϊֱ<CEAA><D6B1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>꣬<EFBFBD><EAA3AC>sx1,sy1)(sx2,sy2)Ϊ<>߶<EFBFBD><DFB6><EFBFBD><EFBFBD>˵㣬<CBB5><E3A3AC><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD>(cx,cy)Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int SegLineCrossPoint(double a, double b, double lx0, double ly0,
|
|
|
|
|
|
double sx1, double sy1, double sx2, double sy2, double& cx, double& cy);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A(x1,y1) B(x2,y2) C(x3,y3)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD>Ľ<EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AC<41>߽<EFBFBD><DFBD><EFBFBD>(x0,y0)<29><><EFBFBD><EFBFBD>ABC<42><43><EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>Ͼ<EFBFBD><CFBE><EFBFBD>Ϊ1<CEAA><31><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
|
|
|
|
|
|
bool GetAngularBisector(double x1, double y1, double x2, double y2, double x3, double y3, double& x0, double& y0);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|