5 -1
806.748 19766.566 28594.574 120 25 54.07 112.779 221.75 221.75 -1
919.527 19736.072 28701.893 91 17 30.63 80.285 221.75 9579.228 -1
999.812 19744.038 28781.659 80 40 50.00 100.000 1E45 1E45 0 1、正算
(注意:略去计算方式及线元要素输入,请自行根据所求点所在的线元输入线元 要素)
S=700 Z=-5 计算得 XS=19831.41785 YS=28509.72590 S=700 Z=0 计算得 XS=19827.33592 YS=28506.83837 S=700 Z= 5 计算得 XS=19823.25398 YS=28503.95084
S=780 Z=-5 计算得 XS=19785.25749 YS=28575.02270 S=780 Z=0 计算得 XS=19781.15561 YS=28572.16358 S=780 Z= 5 计算得 XS=19777.05373 YS=28569.30446
S=870 Z=-5 计算得 XS=19747.53609 YS=28654.13091 S=870 Z=0 计算得 XS=19742.68648 YS=28652.91379 S=870 Z= 5 计算得 XS=19737.83688 YS=28651.69668
S=940 Z=-5.123 计算得 XS=19741. 59118 YS=28722.05802 S=940 Z=0 计算得 XS=19736.47687 YS=28722.35642 S=940 Z= 3.009 计算得 XS=19733.47298 YS=28722.53168 2、 反算
X=19831.418 Y=28509.726 计算得 S=699.9999974 Z= -5 .00018164 X=19827.336 Y=28506.838 计算得 S=699.9996493 Z= 0.000145136 X=19823.25398 Y=28503.95084 计算得 S=699.9999985 Z= 5.000003
137
X=19785.25749 Y=28575.02270 计算得 S=780.0000035 Z= -5 .000001663
X=19781.15561 Y=28572.16358 计算得 S=780.0000025 Z=- 0.000002979
X=19777.05373 Y=28569.30446 计算得 S=780.0000016 Z= 4.99999578
X=19747.536 Y=28654.131 计算得 S=870.0001137 Z= -4.99941049 X=19742.686 Y=28652.914 计算得 S=870.0003175 Z=- 0.00041814 X=19737.837 Y=28651.697 计算得 S=870.0002748 Z= 4.999808656
X=19741.5912 Y=28722.0580 计算得 S=939.9999786 Z= -5.123024937 X=19736.4769 Y=28722.3564 计算得 S=939.9999862 Z=- 0.000027710 X=19733.4730 Y=28722.5317 计算得 S=940.0000238 Z= 3.00898694
注:1、承蒙yshf的源程序:《曲线任意里程中边桩坐标正反算程序》的共享,这里特意感谢!
2、希望广大网友同行支持程序共享并积极扩展,多多网上交流!
查看楼主其它文章 <<返回
→ 回复内容 只查看楼主与本人回复 1 楼:测量员 回 hanniu_1973 :老师您才是真正的大师.中国有您这样如此康概的测量工作员,中国的测量事业有前途了. 2 楼:jinyong0813 各位大虾要是能加上高程的程序,共用此程序输入数据就太棒了!一次计算出三维坐标. 3 楼:hanniu_1973楼主 回 评:+4 分 回 评:+5 分 关于公路三维动态控制测量系统,我正在不断完善中,现在并不是很成熟,故未发布,如有各位同行有更好的程序或编程思路可发布网上进行深度交流! 4 楼:hanniu_1973楼主 回 我已完成了曲线平行线坐标及其与直线等交点坐标计算的严密解算程序,如有这方面想法、意见可与我交流。 hanniu_1973@163.com 5 楼:280050876 hanniu_1973 : 你的主程序中\F=F-M F→DMS◢ \无法运行,我改为\-M →DMS◢ \后可行。 另外有个问题想请教你:就是关于扩展变量“Defm”的取值是否取决于“J=n”呢?拿上面算例来说,“Defm”的取值该取多少为宜??我发现在上面算例中正算时“Defm”的取值问题不是很大,但反算时“Defm”的取值不正确程序运行时会出现“Mem ERROR”,导致反算无法运行。请指教!!!!! 6 楼:hanniu_1973楼主 280050876: 关于上面第一个问题,不好意思!因为网络上传或文字处理软件的问题,故我已在上面的文章里修改了,请在上面查看。而第二个问题:Defm 8N+8 7 楼:280050876 hanniu_1973 : 在主程序的Lbl A中B=Z[8(N+1)+3]-M及B=Z[8(N+1)+3]+M和垂距计算子程序(ZX1)中Z[8(N+1)+1]等扩展变量在算例中最后一线元中找不到这些变量,故程序运行时总显示“Mem ERROR”,这是我的个人观点,不知对否?请指教!!!! 8 楼:hanniu_1973楼主 我在上面已说过了,即Defm 8N+8 9 楼:280050876 hanniu_1973 : 程序中Defm 8N+8取值不错,但程序运行时如上算例中Z[8(N+1)+3]是不是就是Z[51]了,但变量中无Z[51]呀?????? 10 楼:hanniu_1973楼主 准确地说是:Defm 8(N+1)+8 11 楼:111 hanniu_1973 : 这个程序我看了一下发现你这次改编的思路非常好,但我有个问题想问问你;分离式路基这个里程怎么处理啊,会重复了啊! 12 楼:ws 回 回 评:+5 分 回 回 回 回 回 回 程序已经很完美,不过,你们是高手,我想供广大网友提供思路,能改进就好了。 修改的程序对于已知数据区还不如按照第三种修改方案,反正要输入,免得扩展。但是单个数据源的求解不如按照原程序,所以不知道高手能否按照以下思路再改改。 第一,建立主数据程序,即选择不同的匝道数据库进入。如加一个条件关系就可以了。把不同的匝道数据作子程序。 第二,选择S,即任意里程,进入不同的线元。 第三,进入运算主程序。已知附值还是编进去,虽然已知数据会根据数据库程序重复出现一次,但是也没有多大关系,为了熊掌和鱼兼得,可以从该主程序进入,就对已知数据库以外的线元能单独计算。 一点小的建议,冒昧! 13 楼:HANNIU_1973楼主 111: 对于分离式路基,可对数据库和条件判断进行修改即可,因其比较简单和使用不多,请各位自行扩展! 14 楼:HANNIU_1973楼主 ws: 首先说明一下,你提的思路不错,希望各位网友或同行积极加入共享行列!其实编程最重要的是数学模型和解算思路,其余的只是程序员的份内事了。当然要问到具体的实现步骤,这有点像学书法一样,对一位尚未入门或刚入门的学者来说,的确不易,能把学写工整就已不错了,更何况章法和韵律呢?言归正传,把各条线的线元数据作为数据库编入子程序,然后在主程序的正算条件判断中加入路由并在反算中设置N的初值即可,因其比较简单,请各位自行扩展,我在这里就不再赘述了。另外,在这里我向大家提二点思路:1、可加入平行线解算功能及其与曲线求交功能;2、可加入方向坐标法或称虚拟测站法放样功能。 15 楼:qw-197312 请教几个问题: 1\Defm 后面的变量如何设置,好象用8(n+1)+8坐标反算时老时出问题,设置其它也不可以. 2\坐标正算时曲线在HY\HZ两点坐标计算均有问题. 3\程序"DAT1"中的"LB1"和 "LB2"好象无GOTO语句对应. 我用的是FX4800计算器, 特此请教! 16 楼:280050876 hanniu_1973 : 我不知道这个程序你是否已调试通过,反正我是对照你的程序一字一句的输入的.但我的Defm取值不管是Defm 8N+8或是Defm 8(N+1)+8,反算时均未能通过,总是出现“Mem ERROR”.我个人认为是不是你主程序的Lbl A中B=Z[8(N+1)+3]-M及B=Z[8(N+1)+3]+M和垂距计算子程序(ZX1)中Z[8(N+1)+1]等扩展变量在子程序DAT1中的变量不存在的回 回 回 回 缘故?????拿上面算例来说,当J=5时,Z[8(N+1)+3]=Z[51],Z[8(N+1)+1]=Z[49],而Z[51]、Z[49]这两个变量在主程序和子程序中根本找不到相对应的数值。 17 楼:ws hanniu_1973:你好! 我对你复合SIMPSON公式计算的曲线元坐标程序感兴趣,这两天怎么进不去。再说,我调用你的这个程序,和“谢了”网友说的一样。能不能你再检查检查!谢了 18 楼:NetBee FW=”:F→DMS◢ Goto 1 中的F→DMS怎么实现?找不到呀? 19 楼:111 hanniu_1973: 你好我是个新手,你能告诉我再程序中如:Z[10]如何给它赋值啊!!!!!!!!!! 20 楼:hanniu_1973楼主 直接输入Z[10]=1793.258 21 楼:hanniu_1973楼主 NetBee: 你的计算器是4850P吗?你可直接输入即可,但如是4800P那需编程解决! 22 楼:yshf hanniu_1973老兄: 你的4800P是什么样的厂生产,只要定义了扩展变量(Defm N , N>=10且在内存容许的情况下),就可以直接在4800P上输入“Z[10]=1793.258”,你恐怕是没试用过此吧! 23 楼:hanniu_1973楼主 回 回 回 回 回 回 回 我用的是4850P,不过这一层面,4800P亦应该如此,即为扩展变量赋值时就用Z[10]=1793.285。如果不是这样,我真有点纳闷了,难道还有别的输入途径,请大家贴出来推广,我愿意赐教! 24 楼:111 hanniu_1973: 是不是在子程序“DAT1”中直接这样输入啊,O=Z[10]=1793.258: 25 楼:hanniu_1973楼主 111: 那倒不是,是在运行程序前,直接在计算器里输入Z[10]=1793.258回车即可。 回 回