Fixed Point plotting -> TODO: fix plotting of circles and edges

TODO: Generate Points distinct from eachother
This commit is contained in:
ti_mo
2025-10-21 00:05:06 +02:00
parent eece186bf3
commit 4f5530c87e
3 changed files with 65 additions and 39 deletions
+29 -20
View File
@@ -54,16 +54,11 @@
<TextBlock Text="Delaunay Triangulation" FontSize="18" Foreground="White"/>
</Border>
<Border Classes="InnerCard">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid ColumnDefinitions="4*,1*">
<Slider Grid.Column="0" Value="{Binding PointCount, Mode=TwoWay}" Margin="5" Minimum="20" Maximum="500"/>
<TextBox Grid.Column="1" Text="{Binding PointCount, Mode=TwoWay}" FontSize="18" Foreground="White" Background="#30ffffff" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/>
</Grid>
</Border>
</StackPanel>
</Border>
</Grid>
@@ -88,45 +83,59 @@
Height="{Binding Bounds.Height, ElementName=Scene}"
IsHitTestVisible="False">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate><Canvas/></ItemsPanelTemplate>
<ItemsPanelTemplate>
<Canvas/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="models:Geometries+GeomEdge">
<DataTemplate x:DataType="models:Geometries+Edge">
<Line StartPoint="{Binding Start}"
EndPoint="{Binding End}"
Stroke="LightGray" StrokeThickness="1"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ItemsControl ItemsSource="{Binding Circles}"
Width="{Binding Bounds.Width, ElementName=Scene}"
Height="{Binding Bounds.Height, ElementName=Scene}"
IsHitTestVisible="False">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate><Canvas/></ItemsPanelTemplate>
<ItemsPanelTemplate>
<Canvas/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="models:Geometries+GeomCircle">
<Ellipse Stroke="Lime" StrokeThickness="1.5"
Width="{Binding Diameter}" Height="{Binding Diameter}"
Canvas.Left="{Binding Left}" Canvas.Top="{Binding Top}"/>
<DataTemplate x:DataType="models:Geometries+Circle">
<Ellipse Stroke="DarkOrange" StrokeThickness="1.5"
Width="{Binding Diameter}"
Height="{Binding Diameter}"
Canvas.Left="{Binding Left}"
Canvas.Top="{Binding Top}"
/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<ItemsControl ItemsSource="{Binding Points}"
Width="{Binding Bounds.Width, ElementName=Scene}"
Height="{Binding Bounds.Height, ElementName=Scene}"
IsHitTestVisible="False">
IsHitTestVisible="False"
>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate><Canvas/></ItemsPanelTemplate>
<ItemsPanelTemplate>
<Canvas/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="models:Geometries+GeomPoint">
<DataTemplate x:DataType="models:Geometries+Point">
<Ellipse Fill="White" Stroke="Black" StrokeThickness="1"
Width="{Binding Size}" Height="{Binding Size}"
Canvas.Left="{Binding Left}" Canvas.Top="{Binding Top}"/>
Width="{Binding Size}"
Height="{Binding Size}"
>
<Ellipse.RenderTransform>
<!-- Nutze Left/Top aus dem VM (oder X/Y, wenn das deine Top-Left-Koords sind) -->
<TranslateTransform X="{Binding Left}" Y="{Binding Top}"/>
</Ellipse.RenderTransform>
</Ellipse>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>