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 截面面积
}
}