開発環境 |
Microsoft Visual Studio Express 2013 for Windows Desktop |
実行環境 |
Microsoft Windows 8.1 (64bit) |
プロジェクトの種類 |
Visual C#/WPF アプリケーション |
プロジェクト名 |
WpfDirectX |
参考
MainWindow.xaml
<Window x:Class="WpfDirectX.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="525" Width="525">
<Grid>
<Viewport3D>
<Viewport3D.Camera>
<PerspectiveCamera x:Name="Camera"
Position="0,2.5,5"
LookDirection="0,-2.5,-5"
UpDirection="0,1,0" />
</Viewport3D.Camera>
<ModelVisual3D x:Name="testMesh">
<ModelVisual3D.Content>
<Model3DGroup>
<GeometryModel3D>
<GeometryModel3D.Geometry>
<MeshGeometry3D
Positions="-1,-1,-1 1,-1,-1 1,1,-1 -1,1,-1 -1,-1,1 1,-1,1 1,1,1 -1,1,1"
TriangleIndices="0 1 3, 1 2 3, 0 4 3, 4 7 3, 4 6 7, 4 5 6, 0 4 1, 1 4 5, 1 2 6, 6 5 1, 2 3 7, 7 6 2"/>
</GeometryModel3D.Geometry>
<GeometryModel3D.Material>
<DiffuseMaterial Brush="#00ff00"/>
</GeometryModel3D.Material>
</GeometryModel3D>
<DirectionalLight Color="#ffffff" Direction="2.5,-2.5,-2.5"/>
</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
</Viewport3D>
</Grid>
</Window>
MainWindow.xaml.cs
using System;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media.Media3D;
using System.Windows.Threading;
namespace WpfDirectX
{
/// <summary>
/// MainWindow.xaml の相互作用ロジック
/// </summary>
public partial class MainWindow : Window
{
private DispatcherTimer intervalTimer = new DispatcherTimer();
private Point3D pos = new Point3D(0, 2.5, 5);
public MainWindow()
{
InitializeComponent();
intervalTimer.Interval = TimeSpan.FromMilliseconds(30);
intervalTimer.Tick += intervalTimer_Tick;
intervalTimer.Start();
}
void intervalTimer_Tick(object sender, EventArgs e)
{
if (Keyboard.IsKeyDown(Key.Escape)) Application.Current.Shutdown();
if (Keyboard.IsKeyDown(Key.Up)) pos.Z -= 0.1;
if (Keyboard.IsKeyDown(Key.Down)) pos.Z += 0.1;
if (Keyboard.IsKeyDown(Key.Left)) pos.X -= 0.1;
if (Keyboard.IsKeyDown(Key.Right)) pos.X += 0.1;
Camera.Position = pos;
}
}
}
最終更新:2014年05月29日 20:23