📄 axis.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using Microsoft.WindowsMobile.DirectX;
using Microsoft.WindowsMobile.DirectX.Direct3D;
using WorldWindow;
namespace cfWorldWind
{
class Axis
{
Material axisMaterial;
public Axis()
{
}
VertexBuffer vbAxis;
//DrawAxis
public void InitializeAxis(Device device)
{
axisMaterial = new Material();
axisMaterial.Ambient = Color.Pink;
axisMaterial.Diffuse = Color.Pink;
vbAxis = new VertexBuffer(typeof(CustomVertex.PositionColored), 2, device, 0, CustomVertex.PositionColored.Format, Pool.SystemMemory);
GraphicsStream stm = vbAxis.Lock(0, 0, 0);
CustomVertex.PositionColored[] axis = new CustomVertex.PositionColored[2];
Vector3 topV = MathEngine.SphericalToCartesian(90, 0, Settings.Radius + 0.15f * Settings.Radius);
axis[0].X = topV.X;
axis[0].Y = topV.Y;
axis[0].Z = topV.Z;
axis[0].Color = System.Drawing.Color.Pink.ToArgb();
Vector3 botV = MathEngine.SphericalToCartesian(-90, 0, Settings.Radius + 0.15f * Settings.Radius);
axis[1].X = botV.X;
axis[1].Y = botV.Y;
axis[1].Z = botV.Z;
axis[1].Color = System.Drawing.Color.Pink.ToArgb();
stm.Write(axis);
vbAxis.Unlock();
}
public void RenderAxis(Device device)
{
device.Material = axisMaterial;
device.SetTexture(0, null);
//device.VertexFormat = CustomVertex.PositionColored.Format;
//device.TextureState[0].ColorOperation = TextureOperation.Disable;
//device.DrawUserPrimitives(PrimitiveType.LineStrip, 1, axis);
device.SetStreamSource(0, vbAxis, 0);
device.DrawPrimitives(PrimitiveType.LineStrip, 0, 1);
}
public void Dispose()
{
if (vbAxis != null)
{
vbAxis.Dispose();
vbAxis = null;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -