-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMatrix3DWindow.xaml
More file actions
71 lines (62 loc) · 3.44 KB
/
Matrix3DWindow.xaml
File metadata and controls
71 lines (62 loc) · 3.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<Window x:Class="Lab1.Wpf.Matrix3DWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:helix="http://helix-toolkit.org/wpf"
Title="Matrix 3D" Height="700" Width="1000">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<!-- Controls panel -->
<StackPanel Grid.Column="0" Margin="8" VerticalAlignment="Top">
<TextBlock FontSize="14" FontWeight="Bold" Margin="0,0,0,8">Visualization Parameters</TextBlock>
<!-- A range -->
<TextBlock FontWeight="SemiBold" Margin="0,4,0,4">Matrix A size (n) — rows</TextBlock>
<StackPanel Orientation="Horizontal" Margin="0,0,0,6">
<TextBlock VerticalAlignment="Center" Margin="0,0,6,0">min</TextBlock>
<TextBox x:Name="AStart" Width="60" Text="1" Margin="0,0,8,0"/>
<TextBlock VerticalAlignment="Center" Margin="0,0,6,0">max</TextBlock>
<TextBox x:Name="AEnd" Width="60" Text="40" Margin="0,0,8,0"/>
<TextBlock VerticalAlignment="Center" Margin="0,0,6,0">step</TextBlock>
<TextBox x:Name="AStep" Width="40" Text="1"/>
</StackPanel>
<!-- B range -->
<TextBlock FontWeight="SemiBold" Margin="0,4,0,4">Matrix B inner (m) — cols of A / rows of B</TextBlock>
<StackPanel Orientation="Horizontal" Margin="0,0,0,6">
<TextBlock VerticalAlignment="Center" Margin="0,0,6,0">min</TextBlock>
<TextBox x:Name="BStart" Width="60" Text="1" Margin="0,0,8,0"/>
<TextBlock VerticalAlignment="Center" Margin="0,0,6,0">max</TextBlock>
<TextBox x:Name="BEnd" Width="60" Text="40" Margin="0,0,8,0"/>
<TextBlock VerticalAlignment="Center" Margin="0,0,6,0">step</TextBlock>
<TextBox x:Name="BStep" Width="40" Text="1"/>
</StackPanel>
<!-- Repeats -->
<StackPanel Orientation="Horizontal" Margin="0,4,0,6">
<TextBlock VerticalAlignment="Center" Margin="0,0,6,0">Repeats (avg)</TextBlock>
<TextBox x:Name="RepeatsBox" Width="60" Text="3" Margin="0,0,8,0"/>
<TextBlock VerticalAlignment="Center" Margin="0,0,6,0">Warmups</TextBlock>
<TextBox x:Name="WarmupsBox" Width="40" Text="1"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,6,0,8">
<TextBlock VerticalAlignment="Center" Margin="0,0,6,0">Vertical scale</TextBlock>
<Slider x:Name="VerticalScaleSlider" Minimum="1" Maximum="100000" Value="1000" Width="160" Margin="0,0,8,0"/>
<TextBlock x:Name="VerticalScaleValue" Width="70" Text="1000" VerticalAlignment="Center"/>
</StackPanel>
<Button x:Name="BuildBtn" Content="Build Surface" Click="BuildBtn_Click" Height="32" Margin="0,6,0,0"/>
<Button x:Name="ClearBtn" Content="Clear" Click="ClearBtn_Click" Height="28" Margin="0,6,0,0"/>
<ProgressBar x:Name="Progress" Height="18" Minimum="0" Maximum="100" Margin="0,8,0,0"/>
<TextBlock x:Name="Status" Text="Ready" Margin="0,6,0,0"/>
<Separator Margin="0,8,0,8"/>
<TextBlock TextWrapping="Wrap">Notes: A = n (rows of A), B = m (columns of A / rows of B). A × B -> result n×n. Choose modest ranges to avoid long runs.</TextBlock>
</StackPanel>
<!-- 3D viewport -->
<Border Grid.Column="1" Margin="6" BorderBrush="Gray" BorderThickness="1">
<helix:HelixViewport3D x:Name="Viewport" Background="White">
<helix:DefaultLights />
<ModelVisual3D x:Name="PointsModel" />
<!-- grid removed; we draw our own axes programmatically -->
</helix:HelixViewport3D>
</Border>
</Grid>
</Window>