这个。。您能表达得更具体点吗?
这个。。。貌似我还没学到。。抱歉、帮不上忙了
下面有种、你参考下,不知道对不对
程序目的:依平曲线要素计算直线、圆曲线、缓和曲线的任意中桩、左、右桩坐标。
程序说明:K0:起始桩号
X0:起始X坐标
Y0:起始Y坐标
ALF:起始方位角
R:半径
LS:缓和曲线长
N:曲线左转N=1,右转N=2
K:待求桩号
LL、LR:左、右桩距离
Q:左、右桩与中线斜交角
求得XZ、YZ、XL、YL、XR、YR分别为中桩、左、右桩坐标。
一、
直线段
文件名:ZX
(COMP)
程式:
L”K0”:O”X0”:P”Y0”:W”ALF”:
Lbl
0:{K}:X”XZ”=O+(K-L)cosW◢
Y”YZ”=P+(K-L)sinW◢
{B}:S”XL”=X-B”LL”cos(W+Q)
◢
T”YL”=Y-Bsin(W+Q)
◢
{C}:U”XR”=X+C”LR”cos(W+Q)
◢
V”YR”=Y+Csin(W+Q)
◢
Goto
0
注:在程序执行过程中,赋给的要素变数的值被固定不变,可对变数(K、LL、LR)赋予不同值,迅速求得所需坐标。
二、
圆曲线段
文件名:YQX
(COMP)
程式:
L”K0”:O”X0”:P”Y0”:W”ALF”:
Lbl
1:{K}:
J=(-1)^N
(K-L)÷R×180÷π:D=2Rsin((-1)^N
J÷2):
X”XZ”=O+Dcos(W+J÷2)
◢
Y”YZ”=P+Dsin(W+J÷2)
◢
{B}:S”XL”=X-B”LL”cos(W+J+Q)
◢
T”YL”=Y-Bsin(W+J+Q)
◢
{C}:U”XR”=X+C”LR”cos(W+J+Q)
◢
V”YR”=Y+Csin(W+J+Q)
◢
Goto
1
注:若没有直接HY点方位角,则ALFHY=ALFZH±Ls/2/R×180/π,(左转-,右转+)。
三、
缓和曲线
文件名:HHQX
(COMP)
程式:
L”K0”:O”X0”:P”Y0”:W”ALF”:
M”LS”:Lbl
3:{K}:
I=(-1)^N×(K-L)^2÷M÷R÷6×180÷π:
D=(K-L)-(K-L)^5÷90÷(RM)^2:
X”XZ”=O+Dcos(W+I)◢
Y”YZ”=P+Dsin(W+I)
◢
{B}:S”XL”=X-B”LL”cos(W+3I+Q)
◢
T”YL”=Y-Bsin(W+3I+Q)
◢
{C}:U”XR”=X+C”LR”cos(W+3I+Q)
◢
V”YR”=Y+Csin(W+3I+Q)
◢
Goto
3
注:1、坐标计算方法是根据偏角法原理;
2、缓和曲线(ZH~HY或YH~HZ)以ZH(或HZ)为起始点;
3、平曲线左转(ZH~HY段N=1,YH~HZ段N=2),曲线右转(ZH~HY段N=2,YH~HZ段N=1)。
解: 本题实际就是一个已知两点坐标求直线方程的问题,应该应用两点式直线方程,即
(y-y1)/(y2-y1)=(x-x1)/(x2-x1),而A(3,4)即为(x1,y1),B(8,7)为(x2,y2)。
(y-4)/(7-4)=(x-3)/(8-3),即(y-4)/3=(x-3)/5
5(y-4)=3(x-3),5y-20=3x-9,5y=3x+11
y=(3/5)x+(11/5)通过此式可以只使用计算器就可计算得到直线上任意一点x坐标对应的y坐标。
在fx-5800中,字母变量 I 和 J 专用于储存极坐标函数 Pol() 的计算结果:距离赋值给 I ,角度赋值给 J,所以,在编程中一般不用字母 I 和 J,以免重复赋值使程序计算出错
字母 I 和 J 不用定义,只要有极坐标运算,系统便自动赋值定义
曲线要素值 交 点 号 1 起点 1 2 3交点坐标 交点桩号 x 2 0 17575 391220628 #DIV/0! 3 y 4 度° 5 分′ 6秒″ 7 弧度 8 9 转角 半径 缓和曲 线长度 L1 10 缓和曲 线长度 L2 11 △R q 切线长度 切线长度 曲线长度 T! T2 14 15 16 外距 校正值 第一缓和 曲线起点 19
#include <stdioh>
struct point
{
double x;
double y;
} ;
struct line
{
double k;
double b;
};
main()
{
struct point kp[2];
struct point dp[1];
struct line lf;
double pdy;
printf("请输入第一个已知点的坐标x和y:(并用空格隔开,回车确定输入)\n");
scanf("%f %f",&kp[1]x,&kp[1]y);
printf("请输入第二个已知点的坐标x和y:(并用空格隔开,回车确定输入)\n");
scanf("%f %f",&kp[2]x,&kp[2]y);
lfk=(kp[2]y-kp[1]y)/ (kp[2]x-kp[1]x);
lfb=-(lfkkp[1]x-kp[1]y);
printf("请输入一个未知点的坐标x和y:(并用空格隔开,回车确定输入)\n");
scanf("%f %f",&dp[1]x,&dp[1]y);
pdy=lfkdp[1]x+lfb;
if (pdy==dp[1]y)
{
printf("\n\a该点在直线上\n");
}
else
{
printf("\n\a该点不在直线上\n");
}
return 0;
}
以上就是关于曲线要素五大坐标怎么计算全部的内容,包括:曲线要素五大坐标怎么计算、求直线任意点坐标的表达式、在卡西欧5800编程中,未定义I,J的含义,与未定义就可以使用吗程序见问题补充,这是直线的坐标反算程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)