You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kev/Drawer/SSBase/WellPoleLib/BaseFunctionExtend.h

31 lines
1.1 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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