1

私は WPF で Helix Toolkit を使用しています。たくさんの線を取り、それらを面に変えたいと思っています。明確にするために、私は 3 次元曲線のグループを持っており、これらすべての線から生じる湾曲した刃を取得したいと考えています。(線はブレードを通る線を表します)。

ある程度、この質問が求めていたのとは逆のことをしたいと思います(線をワイヤーフレームとして使用してモデルに変えます)。

これまでのところ、私はこの XAML を持っています:

<Window x:Class="_3D_Geometry_Test.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:helix="clr-namespace:HelixToolkit.Wpf;assembly=HelixToolkit.Wpf"
    xmlns:local="clr-namespace:_3D_Geometry_Test">
    <Grid>
        <helix:HelixViewport3D x:Name="view1">
            <helix:DefaultLights/>               
            <helix:MeshGeometryVisual3D x:Name="bladesMeshGeo" />    
        </helix:HelixViewport3D>
    </Grid>
</Window>

コード ビハインドの関連部分 (各リストに多くのオブジェクトを追加するだけで完全に構成されているため、の内容は含めません) GetSplines():GetSpars()Point3D

using HelixToolkit.Wpf;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Media3D;
namespace _3D_Geometry_Test
{
    public partial class MainWindow : Window
    {
        const int NUM_SPLINES = 11;
        const int NUM_SPARS = 10;
        public MainWindow()
        {
            InitializeComponent();

            List<Point3D>[] splines = GetSplines();
            List<Point3D>[] spars = GetSpars();

            for (int i = 0; i < NUM_SPLINES; i++)
            {
                bladesMeshGeo.Children.Add(new LinesVisual3D
                {
                    Points = new Point3DCollection(splines[i]),
                    Color = Colors.Red
                });
            }

            for (int i = 0; i < NUM_SPARS; i++)
            {
                bladesMeshGeo.Children.Add(new LinesVisual3D
                {
                    Points = new Point3DCollection(spars[i]),
                    Color = Colors.Blue
                });
            }
        }
    }
}

結果は次のとおりです。

カーブ

しかし、私はこのようなものが欲しい:

ブレード

編集:私は Helix Toolkit には慣れていないので、これを実現できる別のライブラリを誰かが知っていれば、それを聞いて感謝します!

4

1 に答える 1