补发上期:C Sharp编写缓和曲线计算应用程序——漏洞

2023-10-27 20:40

本文主要是介绍补发上期:C Sharp编写缓和曲线计算应用程序——漏洞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在上期编译程序后,发现缓和曲线整桩位为0,无法计算桩位坐标。

为此存在的一些漏洞在此表示抱歉!!!

主要错误出现在表单存储这里:上期应用"count"存储是有漏洞的。

  if (i > Kzh)
{
Kjd1 = i;
存里程.Count();

正确的应该是:应用Add方法。

  Kjd1 = i;存里程.Add(Kjd1);

其余细节的修改部分这里就不做赘述。

修复版内容:

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;存里程.Add(Kjd1);}}Console.WriteLine("本曲线共有{0}个整桩点,请输入需要计算的整桩点点号", 存里程.Count);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);存里程.Add(Tx);存里程.Add(Ty);Console.ReadKey();}else{Console.WriteLine("里程不符合,计算超限");Console.ReadKey();}Kjd1 = Kzh;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编写缓和曲线计算应用程序——漏洞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/288268

相关文章

poj 1113 凸包+简单几何计算

题意: 给N个平面上的点,现在要在离点外L米处建城墙,使得城墙把所有点都包含进去且城墙的长度最短。 解析: 韬哥出的某次训练赛上A出的第一道计算几何,算是大水题吧。 用convexhull算法把凸包求出来,然后加加减减就A了。 计算见下图: 好久没玩画图了啊好开心。 代码: #include <iostream>#include <cstdio>#inclu

uva 1342 欧拉定理(计算几何模板)

题意: 给几个点,把这几个点用直线连起来,求这些直线把平面分成了几个。 解析: 欧拉定理: 顶点数 + 面数 - 边数= 2。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#inc

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <

XTU 1237 计算几何

题面: Magic Triangle Problem Description: Huangriq is a respectful acmer in ACM team of XTU because he brought the best place in regional contest in history of XTU. Huangriq works in a big compa

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

PR曲线——一个更敏感的性能评估工具

在不均衡数据集的情况下,精确率-召回率(Precision-Recall, PR)曲线是一种非常有用的工具,因为它提供了比传统的ROC曲线更准确的性能评估。以下是PR曲线在不均衡数据情况下的一些作用: 关注少数类:在不均衡数据集中,少数类的样本数量远少于多数类。PR曲线通过关注少数类(通常是正类)的性能来弥补这一点,因为它直接评估模型在识别正类方面的能力。 精确率与召回率的平衡:精确率(Pr

计算数组的斜率,偏移,R2

模拟Excel中的R2的计算。         public bool fnCheckRear_R2(List<double[]> lRear, int iMinRear, int iMaxRear, ref double dR2)         {             bool bResult = true;             int n = 0;             dou

GPU 计算 CMPS224 2021 学习笔记 02

并行类型 (1)任务并行 (2)数据并行 CPU & GPU CPU和GPU拥有相互独立的内存空间,需要在两者之间相互传输数据。 (1)分配GPU内存 (2)将CPU上的数据复制到GPU上 (3)在GPU上对数据进行计算操作 (4)将计算结果从GPU复制到CPU上 (5)释放GPU内存 CUDA内存管理API (1)分配内存 cudaErro