加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
AME.cpp 1.21 KB
一键复制 编辑 原始数据 按行查看 历史
SadLava 提交于 2022-05-08 17:08 . first update
#define MAXTN 10000 /* 查表最大数字 */
float sRoot[MAXTN+1]; /* Square root,平方表 */
float J2SX[3601];
float J2SY[3601];
void initAME()
{
ifstream inf;
/* 读取开方表 */
inf.open( ".\\calcF\\sRootTable" );
int n = 0;
for(n=0; n<=MAXTN; n++) {
inf >> sRoot[n];
}
inf.close();
//读取J2S表
inf.open( ".\\calcF\\J2STable" );
for(n=0; n<=3600; n++) {
inf >> J2SX[n]>>J2SY[n];
}
inf.close();
}
#define R2AW 57.295779513082
inline void J2DtoS2D(float& x,float& y,float r,float l)
{
int a=r*R2AW*10;
a%=3600;
if(a<0) a+=3600;
x=J2SX[a]*l;
y=J2SY[a]*l;
}
#undef R2AW
//判断点3是否在线段12上
inline bool PIL(int x1,int y1,int x2,int y2,int x3,int y3)
{
VECTOR3D v1,v2,v3;
v1.x=x1;
v1.y=y1;
v2.x=x2;
v2.y=y2;
v3.x=x3;
v3.y=y3;
return ((v3-v1)*(v2-v1)==0&&x1<=x3&&x2>=x3&&y1<=y3&&y2>=y3);
}
//投影
//基础投影
inline void perPro(float x,float y,float z,float& px,float& py,float maxvl)
{
px=maxvl*x/z;
py=maxvl*y/z;
}
//计算完全位于xy平面的线段在不同深坐标时的长度
inline float perProLen(float z,float len,float maxvl)
{
float x1,x2;
x1=0;
x2=len;
perPro(x1,0,z,x1,len,maxvl);
perPro(x2,0,z,x2,len,maxvl);
return fabs(x1-x2);
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化