上期分享了编写C Sharp圆曲线的应用程序,那么缓和曲线计算也是必不可缺的。

与圆曲线计算一样,缓和曲线的计算依然是定义参数,计算,检核,输出;但是需要注意缓和曲线有特殊点:HY and YH两点。

计算公式:

Thyx = Xzh + (Hd - Hd * Hd * Hd / (40 * R * R));
Thyy = Yzh + (Hd * Hd) / (6 * R) - (Hd * Hd * Hd) / (336 * R * R * R);

依旧需要角度和弧度的相互转换(上期已经给出代码结构,这里就不作赘述。)

Console.WriteLine("请输入缓和曲线长:");
double Hd = double.Parse(Console.ReadLine());

此处定义的double HD就是我们计算中的L0。

多出的参数m,p,wet的计算公式这里也已给出。

桩位的任一点

ZH的x坐标:

ZH的y坐标:

下面是主程序:

namespace 缓和曲线计算
{class Program{public struct AtH1  {public double AtH2(double ang){int fuhao = (int)(ang / Math.Abs(ang));ang = Math.Abs(ang);int d = (int)ang;int m = ((int)(ang * 100)) - d * 100;double s = ang * 10000 - m * 100 - d * 10000;return ((d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 * Math.PI;}}static void Main(string[] args){double m;double p;double Thyx;double Thyy;double T;double L;double E;double q;double Kqz;double Tx;double Ty;double Kzh;double Khy;double Kyh;double Khz;double wet;AtH1 A;Console.WriteLine("请输入交点里程(需要输入里程与小数):");double Kjd = double.Parse(Console.ReadLine());Console.WriteLine("请输入转角值:");double Aef = A.AtH2(double.Parse(Console.ReadLine()));Console.WriteLine("请输入曲线半径值:");double R = double.Parse(Console.ReadLine());Console.WriteLine("请输入直缓点的X坐标:");double Xzh = double.Parse(Console.ReadLine());Console.WriteLine("请输入直缓点的Y坐标:");double Yzh = double.Parse(Console.ReadLine());Console.WriteLine("请输入ZY-JD方位角:");double Wt = A.AtH2(double.Parse(Console.ReadLine()));Console.WriteLine("请输入缓和曲线长:");double Hd = double.Parse(Console.ReadLine());m = Hd / 2 - (Hd * Hd * Hd / 240 / R / R / R);Console.WriteLine(m);p = Hd * Hd / 24 / R;Console.WriteLine(p);wet = Hd * A.AtH2(180) / 2 / R / Math.PI;Console.WriteLine(wet);Console.ReadKey();T = (R + p) * Math.Tan(Aef / 2) + m;Console.WriteLine("T ={0}", T);L = Math.PI * R * (Aef - 2 * wet) / A.AtH2(180) + 2 * Hd;Console.WriteLine("L ={0}", L);E = (R + p) / Math.Cos(Aef / 2) - R;Console.WriteLine("E = {0}", E);q = 2 * T - L;Console.WriteLine("q = {0}", q);Kzh = Kjd - T;Console.WriteLine("Kzh = {0}", Kzh);Khy = Kzh + Hd;Console.WriteLine("Khy = {0}", Khy);Kqz = Kzh + L / 2;Console.WriteLine("Kqz = {0}", Kqz);Kyh = Kqz + L / 2;Console.WriteLine("Kyh = {0}", Kyh);Khz = Kzh + L;Console.WriteLine("Khz = {0}", Khz);Console.WriteLine("检校值{0}", Kqz + q / 2 - Kjd);Console.WriteLine("请输入整桩点间隔值:");double ZZD = double.Parse(Console.ReadLine());double Kjd1 = 0;List<double> 存里程 = new List<double>();for (double i = 0; i < Khy; i += ZZD){if (i > Kzh){Kjd1 = i;存里程.Count();}}Console.WriteLine("左幅缓和曲线共有{0}个整装点,输入计算点号", 存里程.Count);Console.ReadKey();int co = int.Parse(Console.ReadLine());Kjd1 = 存里程[co - 1];if (Kqz + q / 2 - Kjd == 0) {Tx = Xzh + (Hd - (Hd * Hd * Hd * Hd * Hd) / (40 * R * R * (Kjd1 - Kzh)));Console.WriteLine("Tx(第{0}桩) = {1}", co, Tx);Ty = Yzh + (Hd * Hd * Hd) / (6 * R * (Kjd1 - Kzh)) - (Hd * Hd * Hd * Hd * Hd * Hd * Hd) / (336 * R * R * R * ((Kjd1 - Kzh) * (Kjd1 - Kzh) * (Kjd1 - Kzh)));Console.WriteLine("Ty(第{0}桩) = {1}", co, Ty);Console.ReadKey();}else{Console.WriteLine("里程不符合,计算超限");Console.ReadKey();}Thyx = Xzh + (Hd - Hd * Hd * Hd / (40 * R * R));Console.WriteLine("Thyx(缓圆点X)={0}", Thyx);Thyy = Yzh + (Hd * Hd) / (6 * R) - (Hd * Hd * Hd) / (336 * R * R * R);Console.WriteLine("Thyy(缓圆点X)={0}", Thyy);Console.ReadKey();}}
}

下面是结果:

本程序由吉林建筑科技学院梁*杰老师教学授课,小编经梁*杰老师传授,进行一系列整理希望能帮助到各位测绘同学!(如有侵权请告知!!!)

C Sharp编写缓和曲线计算应用程序相关推荐

  1. 编写AIC工艺参数计算Matlab程序(疯狂踩坑)

    写编写AIC工艺参数计算Matlab程序(疯狂踩坑) Hello! 所用语言:Matlab 原理介绍 程序结构 踩的坑 1.变量定义: 2.定义方程组 3.解方程 整体代码如下: Hello! 写这篇 ...

  2. 缓和曲线计算机编程,关于卡西欧fx-4850计算器--“缓和曲线计算”程序中的一些问题,请...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 程序名:ZOU BIAO M"JD":G"J(X)":D"J(Y)":F:R:A"J ...

  3. python绘制缓和曲线_CAD中缓和曲线的画法 - AutoCAD基础应用 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

    在AutoCAD中缓和曲线的几种画法,其实在AutoCAD中,想要画出缓和的曲线是一项比较困难的工作,目前常见的画法可以分为以下的这几种: 1.AutoLISP程序法,使用这个方法要求用户掌握已知的曲 ...

  4. 程序适用范围:直线、圆曲线、相等缓和曲线、不等缓和曲线、卵型曲线等公路工程上常见的平面线型号,均能在同一个程序内计算。

    该程序只需一次建立数库, 即可进行任意线路位置 中边桩坐标计算. 程序适用范围:直线.圆曲线.相等缓和曲线.不等缓和曲线.卵型曲线等公路工程上常见的平面线型号,均能在同一个程序内计算.    二: 适 ...

  5. 用C语言程序算交税,用C语言编写函数InComeTax计算七级累进税率的税后收入

    新的个人所得税对工资收入采用七级累进税率,税率如下: 已知一个人扣除社保公积金后的收入,请用C语言编写函数InComeTax计算税后收入. 全月应纳税额不超过1500元 ----3% 全月应纳税额超过 ...

  6. lisp 非对称缓和曲线_CAD画缓和曲线lisp程序

    CAD中画缓和曲线,首先复制本文☆后面的源程序保存至cad安装目录的SUPPORT文件夹,保存类型为.lsp 可以随便复制一个SUPPORT 文件夹内的lsp文件,然后替换本文的程序.打开CAD后,输 ...

  7. cad的lisp画线_CAD画缓和曲线lisp程序

    注: 本程序, 缓和曲线段拟合长度为 0.4m , 如需更改拟合长度, 将程序的第 8 行 (repeat(FIX(/Ls0.4)) 及 9 行 (setql(+l(/Ls(FIX(/Ls0.4))) ...

  8. cad抛物线曲线lisp_CAD画缓和曲线lisp程序精编版

    -----------------------最新资料推荐------------------- 1 CAD 中画缓和曲线,首先复制本文☆后面的源程序保存至 cad 安装目录的 SUPPORT 文件 ...

  9. 缓和曲线段长度的计算分析

    缓和曲线段长度的计算分析 在道路线形设计的过程中,缓和曲线占据着非常重要的角色,如何科学合理的设置其长度是很多路线设计者一个很关心的问题.本文中将讲述计算缓和曲线长度的具体方法. 关键词:超高  缓和 ...

  10. 编写一个C++风格的程序,用动态分配空间的方法计算Fibonacci数列的前20项并存储到动态分配的空间中

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 题目: 编写一个C++风格的程序,用动态分配空间的方法计算Fibonacci数列的前20项并存储到动态分配的空间中. 代码: #inc ...

最新文章

  1. oracle 监听服务自动停止与无法启动问题
  2. 第三十一讲 非线性微分自治方程组及图解
  3. 深度linux安装spotify,如何在 Linux 上使用 snap 安装 Spotify(声破天)
  4. 了解【Docker】从这里开始
  5. Android --- 怎么设置 EditText 控件中光标默认位置,当 EditText 里有文字的时候,光标跑到了最前面
  6. 让 Ocelot 与 asp.net core “共存”
  7. 376. 摆动序列 golang
  8. mysql 表 类型_mysql表类型
  9. python2.x和python3.x共存在windows
  10. 如何用Git向GitHub上传送文件(从注册GitHub到用Git上传的每一步)
  11. 深入了解mysql 5.5分区功能增强_深入了解MySQL 5.5分区功能增强
  12. 内网神器cobaltstrike使用教程
  13. 方舟生存进化掉落物代码
  14. 微信小程序全国巡回沙龙杭州站-芋头演讲详细内容及PPT
  15. 新冠时空分析——Global evidence of expressed sentiment alterations during the COVID-19 pandemic
  16. 如果GOOGLE退出中国,我们怎么办???
  17. Qt 官方例子 Callout Example
  18. win7 无法给系统保留的100M空间分配盘符时,用下面的方法就好
  19. 机器学习期中考复习(md全是证明题)
  20. 中国古代数学家张丘建在他的《算经》中提出了一个著名的 “ 百钱买百鸡问题”鸡翁一, 值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何

热门文章

  1. Android模拟手机QQ登录界面和主界面(含源码)
  2. 大数据杀熟 算法_大数据“杀熟” 怎能让真正的刀俎逍遥法外
  3. 3.3 RESET and Initialization Procedure
  4. 浪潮nf5280m5默认ipmi_NF5180M5- IPMI设置
  5. 小恐龙游戏python_从Chrome小恐龙游戏学习2D游戏制作
  6. 使用Typora+PicGo+Gitee+坚果云搭建免费高效的个人云笔记
  7. 插入网线后以太网显示ip4连接无网络访问权限
  8. 阿里云文字转语音接口
  9. 解决方案:LoadLibrary加载动态库失败,错误代码126
  10. MySQL 归档数据的方法你知道了吗