using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DPumpHydr.WinFrmUI.Volute.ViewModel { public class OutflowParas { public OutflowParas() { ShapeStyle = ViewModel.eOutflowShapeStyle.未知; LinkStyle = ViewModel.eOutflowLinkStyle.曲线; this.Tangent_Top_Right = 1; this.Tangent_Btm_Right = 1; this.Tangent_Top_Left = 1; this.Tangent_Btm_Left = 1; } public OutflowParas(OutflowParas rhs) { this.ShapeStyle = rhs.ShapeStyle; this.LinkStyle = rhs.LinkStyle; this.Offset = rhs.Offset; this.Heigh = rhs.Heigh; this.Dia = rhs.Dia; this.Tangent_Top_Right = rhs.Tangent_Top_Right; this.Tangent_Btm_Right = rhs.Tangent_Btm_Right; this.Tangent_Top_Left = rhs.Tangent_Top_Left; this.Tangent_Btm_Left = rhs.Tangent_Btm_Left; this.H1 = rhs.H1; this.H2 = rhs.H2; this.R1 = rhs.R1; this.R2 = rhs.R2; this.Septalradius = rhs.Septalradius; } public ViewModel.eOutflowShapeStyle ShapeStyle { get; set; } public ViewModel.eOutflowLinkStyle LinkStyle { get; set; } /// /// 中心距离 图片中的A /// public double Offset { get; set; } //图片中的A = 0.0; /// /// 出口长度 图片中L /// public double Heigh { get; set; } //图片中的L = 420.0; /// /// 出口宽度 图片中的D4 /// public double Dia { get; set; } //图片中的D4 = 80.0; /// /// 右上曲线缩放量 /// public double Tangent_Top_Right { get; set; } //切线缩放量 = m_dTopValue; /// /// 右下曲线缩放量 /// public double Tangent_Btm_Right { get; set; } //切线缩放量 = m_dBtmValue; /// /// 左上曲线缩放量 /// public double Tangent_Top_Left { get; set; } //切线缩放量 = m_dTopValue; /// /// 左下曲线缩放量 /// public double Tangent_Btm_Left { get; set; } //切线缩放量 = m_dBtmValue; /// /// 圆弧链接时R1 /// public double R1 { get; set; }//圆弧连接时的R1 /// /// 圆弧链接时R2 /// public double R2 { get; set; }//圆弧连接时的R2 /// /// 出口与曲线或圆弧之间的高度 左 /// public double H1 { get; set; } //图片中的H1 = 10; /// /// 出口与曲线或圆弧之间的高度 右 /// public double H2 { get; set; } //图片中的H2 = 10; /// /// 割舌半径 /// public double Septalradius { get; set; } //隔舌半径r } public static class GeometryHelper { // 将角度从度转换为弧度 public static double DegreesToRadians(double degrees) { return degrees * Math.PI / 180.0; } // 计算极坐标点 public static PointD AdsPolar(PointD startPoint, double angleInRadians, double distance) { double newX = startPoint.X + distance * Math.Cos(angleInRadians); double newY = startPoint.Y + distance * Math.Sin(angleInRadians); return new PointD(newX, newY); } } public struct PointD { public double X { get; set; } public double Y { get; set; } public PointD(double x, double y) { X = x; Y = y; } } public class OutflowParasCalcReponse { public bool IsSuccess { get; set; } public double SectArea9 { get; set; } //9 截面面积 public double SectArea10 { get; set; } //10 截面面积 } }