C# 喷嘴几何形状WPF

C# 喷嘴几何形状WPF,c#,wpf,xaml,shape,C#,Wpf,Xaml,Shape,我目前正在做一个CFD的简单问题,用WPF中的C#分析准一维流动(只随x变化),我想用一种“体面”的方式来表示结果。因此,将其想象为具有给定数量垂直截面的矩形。形状不是矩形,而是喷嘴。我想知道的是,是否有一种用StackPanel或类似的某种形式来表示的方法 在所附的图像中可以看到形状,以帮助理解问题 每个截面(一个被喷嘴边缘“切割”的矩形)都有一个相关的温度,并且已经计算过了。举个例子,绘制的截面的温度值为250,例如,我想将其涂成红色 我的问题是:有没有办法“塑造”StackPanel或类似

我目前正在做一个CFD的简单问题,用WPF中的C#分析准一维流动(只随x变化),我想用一种“体面”的方式来表示结果。因此,将其想象为具有给定数量垂直截面的矩形。形状不是矩形,而是喷嘴。我想知道的是,是否有一种用StackPanel或类似的某种形式来表示的方法

在所附的图像中可以看到形状,以帮助理解问题

每个截面(一个被喷嘴边缘“切割”的矩形)都有一个相关的温度,并且已经计算过了。举个例子,绘制的截面的温度值为250,例如,我想将其涂成红色

我的问题是:有没有办法“塑造”StackPanel或类似的东西来显示所示的形状?

我已经搜索了信息,这是找到的最相似的选项:

<Path Stroke="Black" StrokeThickness="1">
  <Path.Data>
    <PathGeometry>
      <PathGeometry.Figures>
        <PathFigureCollection>
          <PathFigure StartPoint="10,100">
            <PathFigure.Segments>
              <PathSegmentCollection>
                <QuadraticBezierSegment Point1="200,200" Point2="300,100" />
              </PathSegmentCollection>
            </PathFigure.Segments>
          </PathFigure>
        </PathFigureCollection>
      </PathGeometry.Figures>
    </PathGeometry>
  </Path.Data>
</Path>

这张图就是这样画的。我想用这种方法来构建喷嘴,并能够按照第一幅图中的建议将其分割或放置在其中的垂直部分,根据它们的值进行绘制。


您定义了一个相当复杂的问题,对于单个SO问题来说可能太复杂了。我决不是为你的问题提供一个完整的解决方案。但也许这足以为你指明正确的方向。从那里,你可以开始你自己的解决方案,如果你陷入困境,可以问更多的问题

最好的解决方案可能是使用c#(或者可能是XAML)在画布上手动绘制形状

这是我快速搜索后能找到的最好的链接

这是一个用XAML和代码绘制几何图形和几何形状的Microsoft教程。 请参见有关路径几何图形的部分。 我认为,通过组合曲线边的两个圆弧段和连接两个边的线段,可以获得所需的基本形状


我认为,对于矩形的“切割”,您也必须在代码中显式地构建它们。将其覆盖在喷嘴上时,要精确匹配其形状是很困难的。一个简单的解决方法是创建所有水平条并绘制它们。然后创建覆盖矩形的顶部和底部白色覆盖层。一个覆盖层将具有顶部喷嘴的形状,并覆盖您不希望显示的矩形部分。同样,对于另一个形状,它构成了喷嘴的底部

如前所述,这个问题充其量过于宽泛,实际上一点也不清楚。为什么
StackPanel
甚至与目标有任何关联?到目前为止你试过什么?那个代码做了什么?这和你想让它做的有什么不同?请提供清楚回答这些问题的答案。到目前为止,我认为
GeometryDrawing
或类似工具比
StackPanel
更适合这项任务。@PeterDuniho我已经用我迄今为止的尝试更新了这篇文章。希望现在更容易理解:)请查看我提供的链接,了解我的意思。请注意,也可以使用几何图形绘制填充形状。我仍然不明白人们为什么会在这里使用
StackPanel
。呃,不要纠缠于StackPanel用例的语义,我相信这家伙可能没有想到正确的命名法。无论如何,是的,你可以使用一些路径几何体、潜在的画笔和不透明度遮罩来做这样一个非常漂亮的显示,但这是其中一件事,你可能很难找到人花时间在完整的解决方案中,因为这可能需要一些修补来获得想要的结果。不过这个概念很好@我不需要使用堆叠面板。我想写一个完整的例子,但我不知道如何绘制几何体。我在一篇论文中画了它,以显示我想做什么,并更新了我的帖子。首先,创建外部几何体,然后创建内部子几何体,这些子几何体将根据颜色贴图进行填充,但这是一个复杂的几何体(内部包含更多),我无法做到这一点,这就是为什么我要问它。是的!这就是我想要的:)我可以试着在几何教程中绘制外部形状,但主要问题是垂直切割。你知道如何绘制跨越边界的矩形,然后在“更高”层(例如,黑色背景)放置一些东西,通过覆盖它们使矩形的这一小部分不可见吗?我相信z轴(形状的深度)是由绘制形状的顺序控制的。因此,如果绘制的第一个项目重叠,那么绘制的第二个项目将覆盖第一个项目。所以先画所有的矩形。然后,下一步绘制蒙版形状。它将覆盖在矩形的顶部,隐藏边缘。非常感谢!我试试看:)