|
|
#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);
|
|
|
|
|
|
//计算直线与线段的交点,成功返回1,若无,返回0,若重合,返回2.
|
|
|
//参数 a,b为直线向量,lx0,ly0为直线上一点坐标,(sx1,sy1)(sx2,sy2)为线段两端点,若存在交点(cx,cy)为交点坐标
|
|
|
int SegLineCrossPoint(double a, double b, double lx0, double ly0,
|
|
|
double sx1, double sy1, double sx2, double sy2, double& cx, double& cy);
|
|
|
|
|
|
//计算三角形A(x1,y1) B(x2,y2) C(x3,y3),顶点B的角平分线与AC边交点(x0,y0)如果ABC共线,求角平分线上距离为1任意一点
|
|
|
bool GetAngularBisector(double x1, double y1, double x2, double y2, double x3, double y3, double& x0, double& y0);
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|