HelixToolkit.WPF中文文档

HelixToolkit.WPF中文文档

1 Adorners(装饰器)

2 DrawingContextExtensions:扩展绘图方法的类

方法:

DrawArc(DrawingContext,Brush,Pen,Point,double,double,SweepDirection,double,double)使用画刷,画笔绘制几何图形
DrawArc(DrawingContext ,Brush ,Pen ,Point,double,double, SweepDirection ,double ,double )使用画刷,画笔绘制几何图形
DrawArc(DrawingContext ,Brush ,Pen ,Point,double ,double,double ,double)使用画刷,画笔绘制几何图形

3 RectangleAdorner:缩放矩形时,矩形中心出现十字准线的装饰器


属性:

Rectangle获取或设置矩形

方法:

OnRender(DrawingContext )渲染的时候调用

4 TargetSymbolAdorner


属性:

Position获得或设置位置点

方法:

OnRender(DrawingContext )渲染TargetSymbolAdorner

2.Class diagrams(类图)

3.Controls

(1)CameraController:相机控制

(1.1)CameraController:提供通过鼠标和手势来操作相机的类

<helix:HelixViewport3D CameraMode=“Inspect” CameraRotationMode=“Trackball”>
helix:DefaultLights/
<local:SpectrumAnalyser x:Name=“analyzer”/>
</helix:HelixViewport3D>
属性:

ActualCamera获取实际相机
Camera相机
CameraLookDirection相机方向
CameraMode相机模式
CameraPosition相机位置
CameraRotationMode相机旋转模式
CameraTarget获取或设置向相机目标
CameraUpDirection获取或设置相机垂直方向
ChangeFieldOfViewCursor获取或设置改变视图光标
DefaultCamera默认相机
Enabled获取或设置一个值,指示是否启用。
InertiaFactor获取或 设置惯性因子
InfiniteSpin获取或设置一个值,指示是否为无限旋转
IsActive获取一个值是否表示IsActive。
IsChangeFieldOfViewEnabled能否改变视野
IsInertiaEnabled获取或设置一个值,指示相机操作是否启用惯性
IsMoveEnabled能否移动
IsPanEnabled能否平移
IsRotationEnabled能否旋转
IsTouchZoomEnabled能否触摸缩放
IsZoomEnabled能否缩放
LeftRightPanSensitivity通过左右键获取或设置平移灵敏度
LeftRightRotationSensitivity通过左右键获取或设置旋转灵敏度
MaximumFieldOfView最大视野
MinimumFieldOfView最小视野
ModelUpDirection获取或设置模型的垂直方向
MoveSensitivity获取或设置移动灵敏度。
PageUpDownZoomSensitivity通过页面向上和向下翻页获取或设置缩放的灵敏度
PanCursor平移光标
RotateAroundMouseDownPoint获取或设置一个值,指示是否绕鼠标向下旋转
RotateCursor旋转光标
RotationSensitivity旋转灵敏度
ShowCameraTarget获取或设置一个值,指示在操作相机时是否显示目标服务器。
SpinReleaseTime获取或设置鼠标拖动的最大持续时间以激活旋转
UpDownPanSensitivity通过向上和向下键获取或设置平移的灵敏度。
UpDownRotationSensitivity通过向上和向下键获取或设置旋转的灵敏度。
Viewport视口
ZoomAroundMouseDownPoint获取或设置一个值,指示是否放大鼠标左下角
ZoomCursor缩放光标
ZoomRectangleCursor获取或设置缩放矩形光标
ZoomSensitivity获取或设置缩放灵敏度
IsOrthographicCamera获取一个值,指示是否是平行相机。
IsPerspectiveCamera获取一个值,指示是否是正交相机。
OrthographicCamera平行相机
PerspectiveCamera正交相机

方法:

AddMoveForce(double, double , double)添加移动强度
AddMoveForce(Vector3D)添加移动强度
AddPanForce(double, double)添加平移强度
AddPanForce(Vector3D)添加平移强度
AddRotateForce(double, double)添加旋转强度
AddZoomForce(double)添加缩放强度
ChangeDirection(Vector3D, Vector3D, double)改变相机方向
ChangeDirection(Vector3D, double)改变相机方向
HideRectangle()隐藏矩形
HideTargetAdorner()隐藏目标adorner
LookAt(Point3D, doubl)改变look-at点
PushCameraSetting()将当前相机设置推入内部堆栈
ResetCamera()重置相机
ResetCameraUpDirection()重置相机垂直方向
RestoreCameraSetting()重置相机设置
ShowRectangle(Rect, Color, Color)显示矩形
ShowTargetAdorner(Point)显示目标adorner。
StartSpin(Vector, Point, Point3D)开始旋转
StopSpin()停止旋转
UpdateRectangle(Rect)根性矩形
Zoom(double)根据增量值缩放
ZoomExtents(double)缩放模型范围
RestoreCursor()从光标栈恢复光标
SetCursor(Cursor)设置光标
OnLookAtChanged()触发LookAtChanged事件
OnZoomedByRectangle()引发ZoomedByRectangle事件
OnManipulationCompleted(ManipulationCompletedEventArgs)触摸完成事件
OnManipulationDelta(ManipulationDeltaEventArgs)触摸事件
OnManipulationStarted(ManipulationStartedEventArgs)触摸开始事件
OnStylusSystemGesture(StylusSystemGestureEventArgs)
CameraChanged(DependencyObject, DependencyPropertyChangedEventArgs)相机改变事件
ViewportChanged(DependencyObject, DependencyPropertyChangedEventArgs )视口改变事件
BackViewHandler(object, ExecutedRoutedEventArgs )后视图处理事件
BottomViewHandler(object, ExecutedRoutedEventArgs)底视图处理事件
CameraControllerLoaded(object, RoutedEventArgs )相机控制器载入时发生
CameraControllerUnloaded(objec, RoutedEventArgs )相机控制器卸载时发生
Clamp(double, double, double)限制特定的值
FindPanVector(double, double)找到平移向量
FrontViewHandler(object, ExecutedRoutedEventArgs )前视图处理事件
InitializeBindings()初始化输入绑定。
LeftViewHandler(object, ExecutedRoutedEventArgs )左视图处理事件
OnCameraChanged()相机改变
OnCompositionTargetRendering(object, RenderingEventArgs)渲染事件
OnKeyDown(object, KeyEventArgs )按键事件
OnMouseWheel(object, MouseWheelEventArgs )鼠标滚轮事件
OnTimeStep(double)按时步骤
OnViewportChanged()视图改变
RefreshViewport()更新视图
ResetCameraHandler(object, ExecutedRoutedEventArgs )复位照相机事件
RightViewHandler(object, ExecutedRoutedEventArgs)右视图事件处理
StopAnimations()停止动画
SubscribeEvents()订阅事件
TopViewHandler(object, ExecutedRoutedEventArgs )顶视图事件处理。
UnSubscribeEvents()未订阅事件
ZoomExtentsHandler(object, ExecutedRoutedEventArgs)缩放范围事件处理
(1.2)CameraMode(相机模式)

Inspect固定目标位置,缩放时移动相机
WalkAround固定相机位置,放大时沿摄像机移动
FixedPosition固定摄像机目标,变焦时改变视角
(1.3)CameraRotationMode(相机旋转模式)

Turntable转盘被限制在两个旋转轴(模型向上和向右)
Turnball转盘使用三个轴(正方向,右方向和向上方向(左/右边缘)
Trackball使用虚拟轨迹球
(1.4)CameraSetting(相机设置)

属性:

FarPlaneDistance设置最远可视距离
FieldOfView视角
LookDirection摄像机方向
NearPlaneDistance设置最近可视距离
Position指定相机位置
UpDirection摄像机的倾斜角度
Width设置摄像机的宽度

方法:

CameraSetting(ProjectionCamera)初始化CameraSetting类的新实例
UpdateCamera(ProjectionCamera)将相机更新为此状态。
(1.5)ManipulationEventArgs(提供操作事件的数据)

属性:

CurrentPosition设置当前操作位置

方法:

ManipulationEventArgs(Point )初始化ManipulationEventArgs类的新实例
(1.6)MouseGestureHandler(用于鼠标手势处理程序的抽象基类)

属性:

Origin原始触控点
Camera设置相机
CameraLookDirection设置相机方向
CameraMode设置相机模式
CameraPosition设置相机位置
CameraTarget设置相机目标点
CameraUpDirection设置相机倾斜角度
Controller设置相机控制
LastPoint设置最后一个点(2D屏幕坐标)
LastPoint3D设置最后一个点(3D球体坐标)
ManipulationWatch
ModelUpDirection获取模型向上的方向
MouseDownNearestPoint3D获取或设置在最近的命中元素(3D球体坐标)的鼠标点击点。
MouseDownPoint获取或设置鼠标点击点(2D屏幕坐标)
MouseDownPoint3D获取或设置鼠标点击点(3D球面坐标)。
RotationSensitivity获得旋转灵敏度
Viewport获得视口
ViewportHeight视口高度
ViewportWidth视口宽度
ZoomSensitivity缩放灵敏度

方法:

Completed(ManipulationEventArgs )操作完成时发生
Delta(ManipulationEventArgs )操作过程中位置发生改变时发生
Execute(object,ExecutedRoutedEventArgs)开始鼠标手势出理
Started(ManipulationEventArgs )操作开始时发生
UnProject(Point, Point3D, Vector3D)将2D平面点投影到3D平面
UnProject(Point )通过相机目标点将屏幕(2D)的点投射到平面上的一个点。
CanExecute()能否继续执行
GetCursor();获取手势的光标
GetRay(Point)将光线线放入由2D中的位置给出的视图体积(屏幕坐标)
OnInertiaStarting(int)惯性开始时调用
OnMouseDown(object,MouseButtonEventArgs )当鼠标被按下时发生
OnMouseMove(object, MouseEventArgs )鼠标移动时发生
OnMouseUp(object, MouseButtonEventArgs)鼠标释放时发生
Project(Point3D p)计算3D点的屏幕位置
SetMouseDownPoint(Point position)设置鼠标点击点
(1.7)PanHandler(处理平移)

属性

panPoint3D3D平移起点

事件:

PanHandler(CameraController)初始化PanHandler的新实例
Delta(ManipulationEventArgs )当操作过程中位置发生改变时发生
Pan(Vector3D)用指定的3D矢量(球体坐标)平移相机
Pan(Vector)用指定的2D矢量(屏幕坐标)平移相机。
Started(ManipulationEventArgs )当操作开始时发生
CanExecute()当命令可以被目标执行
GetCursor()获取手势的光标
OnInertiaStarting(int)惯性开始时被调用
(1.8)RotateHandler(处理旋转)

属性:

changeLookAtLookat是否改变
rotationAxisXX旋转轴
rotationAxisYY旋转轴
rotationPoint旋转点
rotationPoint3D3D旋转点

方法:

RotateHandler(CameraController, bool)初始化RotateHandler类的新实例
Completed(ManipulationEventArgs )当操作完成时发生
Delta(ManipulationEventArgs e)操作过程中位置改变时发生
LookAt(Point3D, double)改变lookat点
Rotate(Point, Point, Point3D)围绕指定点旋转相机
Rotate(Vector)旋转
RotateTurnball(Point, Point, Point3D )绕三个轴旋转
RotateTurntable(Vector, Point3D)使用转盘旋转旋转相机
Started(ManipulationEventArgs )操作开始后发生
CanExecute()能被执行
GetCursor()获得光标
OnInertiaStarting(int)惯性开始时调用
ProjectToTrackball(Point, double, double)将平面点投影到球体坐标
InitTurnballRotationAxes(Point )初始旋转轴
RotateAroundUpAndRight(Point, Point, Point3D)围绕照相机向上和向右旋转
RotateTrackball(Point, Point, Point3D)旋转轨迹球
(1.9)ZoomHandler(缩放操作)

属性:

changeFieldOfView改变视角
zoomPoint缩放点
zoomPoint3D3D缩放点

方法:

ZoomHandler(CameraController, bool)初始化ZoomHandler的新实例
ZoomByChangingCameraPosition(double, Point3D)改变相机位置缩放
MoveCameraPosition(Vector3D)通过特定向量改变相机位置
ZoomByChangingCameraWidth(double,Point3D)改变相机宽度缩放
ZoomByChangingFieldOfView(double)改变视角缩放
Completed(ManipulationEventArgs )操作完成时发生
Delta(ManipulationEventArgs )操作时位置改变时发生
Started(ManipulationEventArgs )操作开始后发生
Zoom(double delta)缩放视图
Zoom(double delta, Point3D zoomAround)围绕指定点缩放视图
CanExecute()命令可以被执行
GetCursor()获得手势时光标
ChangeCameraDistance(double, Point3D)改变相机距离
(1.10)ZoomRectangleHandler(处理矩形缩放)

属性:

zoomRectangle缩放的矩形

方法:

ZoomRectangleHandler(CameraController)初始化ZoomRectangleHandler的新实例
Completed(ManipulationEventArgs )操作完成时发生
Delta(ManipulationEventArgs )操作时位置改变时发生
Started(ManipulationEventArgs )操作开始后发生
ZoomRectangle(Rect)缩放到特定矩形
CanExecute()命令可以被执行
GetCursor()获得手势时光标

(2)ColorAxis(颜色轴)

(2.1)CategorizedColorAxis(为不同类别提供颜色轴)


<h:CategorizedColorAxis Categories=“{Binding Categories}” ColorScheme=“{Binding ColorScheme2}” />
this.Categories = new[] { “Asia”, “Africa”, “North America”, “South America”, “Antarctica”, “Europe”, “Australia” };
this.ColorScheme2 =BrushHelper.CreateSteppedGradientBrush(new[] { Colors.Yellow, Colors.Brown, Colors.Red, Colors.Green, Colors.White, Colors.Orange, Colors.Blue },false);
属性:

Categories获取或设置类别

方法:

AddVisuals()更新视图
GetTickLabels()获取刻度标签
(2.2)ColorAxis

属性:

BarWidth获取或设置颜色条矩形的宽度
ColorScheme获取或设置配色方案
FlipColorScheme获取或设置配色方案,如果为True,则转换正常颜色方向
Position获取或设置位置
TextMargin获取或设置文本边距
TickLength获取或设置刻度的长度
Canvas获得画布
ColorArea获得颜色矩形区域

方法:

ColorAxis()初始化ColorAxis()的新实例
OnApplyTemplate()
PropertyChanged(DependencyObject, DependencyPropertyChangedEventArgs)处理属性改变
AddVisuals()添加视图
GetTickLabels()获取刻度标签
MeasureOverride(Size)
UpdateVisuals()更新视图
(2.3)ColorAxisPosition(颜色轴的位置)

属性:

Left左边位置
Right右边位置
(2.4)RangeColorAxis


<h:RangeColorAxis Grid.Row=“1” Grid.Column=“2” Minimum=“4” Maximum=“104” Step=“10” Margin=“8” Padding=“4 8 4 8” ColorScheme=“{Binding ColorScheme}” Background=“#80FFFFFF” Position=“Right”/>
属性:

FormatProvider获取或设置提供的格式
FormatString获取或设置格式字符串
Maximum获取或设置最大值
MaximumTextureCoordinate获取或设置最大纹理坐标
Minimum获取或设置最小值
MinimumTextureCoordinate获取或设置最小纹理坐标
Step设置间隔

方法:

AddVisuals()更新视图
GetTickLabels()获取刻度标签
GetTickValues()获取刻度值

(3)Stereo(立方体)

(3.1)StereoControl(用立体相机控制的基础类)

属性:

Camera获取或设置相机
CameraRotationMode获取或设置相机旋转模式
CopyDirectionVector获取或设置一个值,指示是否复制方向向量。
CopyUpVector获取或设置一个值,指示是否复制方向向量。
CrossViewing获取或设置一个值,指示相机是否设置为交叉查看
StereoBase获取或设置立体基类
Children获取子类
LeftCamera获取或设置左边相机
LeftViewport获取或设置左边视口
RightCamera获取或设置右边相机
RightViewport获取或设置右边视口

方法:

StereoControl()初始化StereoControl()的一个新实例
BindViewports(Viewport3D,Viewport3D)绑定视口
BindViewports(Viewport3D Viewport3D, bool, bool)绑定视口
Clear()清理集合元素
ExportKerkythea(string leftFileName, string rightFileName)将视图导出到kerkythea
SynchronizeStereoModel()同步立体声模型
UpdateCameras()更新相机
StereoViewChanged(DependencyObject , DependencyPropertyChangedEventArgs )处理立体视图发生改变
CameraChanged(object, EventArgs)处理相机改变事件
ChildrenCollectionChanged(object, NotifyCollectionChangedEventArgs )处理集合元素发生改变

5 HelixViewport3D(包含Viewport3D和CameraController的控件)

属性:

BackViewGesture获取或设置后视图手势
BottomViewGesture获取或设置底部视图手势
CameraInertiaFactor获取或设置相机惯性因子
CameraInfo获取相机信息
CameraMode获取或设置相机模式
CameraRotationMode获取或设置相机旋转模式
ChangeFieldOfViewCursor获取或设置视野改变时的光标
ChangeFieldOfViewGesture获取或设置视野改变时的手势
ChangeLookAtGesture获取或设置look-at该变时的手势
CoordinateSystemHeight获取或设置坐标系视口的高度
CoordinateSystemHorizontalPosition获取或设置坐标系视口的水平位置
CoordinateSystemLabelForeground获取或设置坐标系标签的颜色
CoordinateSystemLabelX获取或设置坐标系X标签
CoordinateSystemLabelY获取或设置坐标系Y标签
CoordinateSystemLabelZ获取或设置坐标系Z标签
CoordinateSystemVerticalPosition获取或设置坐标系视口的垂直位置
CoordinateSystemWidth获取或设置坐标系视口的宽度
CurrentPosition当前位置
EnableCurrentPosition获取或设置值,当前位置值是否可用
CalculateCursorPosition获取或设置值,当前光标位置值是否可用
CursorPosition得到光标位置
CursorOnElementPosition获取最近模型上当前的光标位置。 如果模型未命中,则该位置为null
CursorOnConstructionPlanePosition获取光标平面上的当前光标位置
ConstructionPlane获取或设置定义当前定义平面光标位置的平面
CursorRay获取光标
DefaultCamera获取或设置默认相机
FieldOfViewText获取视图文本
FrameRate获取帧速率
FrameRateText获取帧速率文本
FrontViewGesture获取或设置前视图手势
InfiniteSpin获取或设置一个指示是否启用无限旋转的值
InfoBackground获取或设置CameraInfo和TriangleCount字段的背景画笔
InfoForeground获取或设置信息文本的前景画笔
IsChangeFieldOfViewEnabled获取或设置一个值,该值指示是否启用了视野更改。
IsHeadLightEnabled获取或设置一个值,指示头灯是否启用
IsInertiaEnabled获取或设置一个值,指示相机操作是否启用惯性
IsPanEnabled获取或设置一个值,指示平移是否可用
IsMoveEnabled获取或设置一个值,指示移动是否可用
IsRotationEnabled获取或设置一个值,指示旋转是否可用
IsTouchZoomEnabled获取或设置一个值,指示触摸是否可用
IsZoomEnabled获取或设置一个值,指示缩放是否可用
LeftRightPanSensitivity通过左右键获取或设置平移的灵敏度
LeftRightRotationSensitivity通过左右键获取或设置旋转的灵敏度
LeftViewGesture获取或设置左视图手势
LookAtChanged
MaximumFieldOfView获取或设置最大视野
MinimumFieldOfView获取或设置最小视野
ModelUpDirection获取或设置模型的向上方向
Orthographic获取或设置一个值,指示是否使用正交相机。
OrthographicToggleGesture获取或设置正交切换手势
PageUpDownZoomSensitivity通过页面向上和向下翻页获取或设置缩放的灵敏度
PanCursor获取或设置平移光标
PanGesture2获取或设置替代平移手势
PanGesture获取或设置平移手势
ResetCameraGesture获取或设置复位摄像机手势
ResetCameraKeyGesture获取或设置重设相机的关键手势
RightViewGesture获取或设置右视图手势
RotateAroundMouseDownPoint获取或设置一个值,指示是否绕鼠标向下旋转
RotateCursor获取或设置旋转光标
RotateGesture2获取或设置代替的旋转手势
RotateGesture获取或设置旋转手势
RotationSensitivity获取或设置旋转灵敏度
ShowCameraInfo获取或设置一个值,指示是否显示相机信息
ShowCameraTarget获取或设置一个值,指示是否显示摄像机目标
ShowCoordinateSystem获取或设置一个值,指示是否显示坐标系
ShowFieldOfView获取或设置一个值,指示是否显示当前视野
ShowFrameRate获取或设置一个值,指示是否显示帧速率
ShowTriangleCountInfo获取或设置一个值,指示是否显示场景中的三角形总数
ShowViewCube获取或设置一个值,指示是否显示视图立方体
Status获取或设置状态
SubTitle获取或设置子标题
SubTitleSize获取或设置子标题大小
TextBrush获取或设置文本画笔
TitleBackground获取或设置标题背景颜色
TitleFontFamily获取或设置标题字体
Title获取或设置标题
TitleSize获取或设置标题大小
TopViewGesture获取或设置上视图手势
TriangleCountInfo获取有关三角形数的信息
UpDownPanSensitivity通过向上和向下键获取或设置平移的灵敏度
UpDownRotationSensitivity通过向上和向下键获取或设置旋转的灵敏度
ViewCubeBackText获取或设置多维立方体后视图文本
ViewCubeBottomText获取或设置多维立方体底部视图文本
ViewCubeFrontText获取或设置多维立方体前视图文本
ViewCubeHeight获取或设置多维立方体高度
ViewCubeHorizontalPosition获取或设置多维立方体水平位置
ViewCubeLeftText获取或设置多维立方体左视图文本
ViewCubeOpacity获取或设置多维立方体透明度
ViewCubeRightText获取或设置多维立方体右视图文本
ViewCubeTopText获取或设置多维立方体上视图文本
ViewCubeVerticalPosition获取或设置多维立方体垂直位置
ViewCubeWidth获取或设置多维立方体宽度
ZoomAroundMouseDownPoint获取或设置一个值,指示是否放大鼠标左下角
ZoomCursor获取或设置缩放光标
ZoomExtentsGesture获取或设置缩放手势范围
ZoomExtentsWhenLoaded获取或设置一个值,指示控件加载时是否缩放扩展盘。
ZoomGesture2获取或设置替代的缩放手势
ZoomGesture获取或设置缩放手势
ZoomRectangleCursor获取或设置缩放矩形光标
ZoomRectangleGesture获取或设置缩放矩形手势
ZoomSensitivity获取或设置缩放灵敏度
Camera获取或设置相机
CameraController得到相机控制器
Children获取子元素
DebugInfo获取或设置调试信息文本
IsViewCubeEdgeClicksEnabled获取或设置视图多边形边框能否点击
Lights获取灯光
Viewport获得视口

方法:

HelixViewport3D()初始化HelixViewport3D()的新实例
CameraChanged相机属性更改事件
LookAtChanged当目标点改变时发生
ChangeCameraDirection(Vector3D, double)改变相机方向
Copy()将视图复制到剪贴板
CopyXaml()将视图复制到剪贴板为xaml格式。
Export(string)将视图导出到指定的文件
ExportStereo(string, double)将视图导出为具有指定文件名的立体图像
FindNearest(Point, out Point3D, out Vector3D, out DependencyObject)找到最近的对象
FindNearestPoint(Point)找到最近的点
FindNearestVisual(Point)找到通过指定点最接近摄像机射线的 “Visual3D”对象。
LookAt(Point3D, double)更改相机以查看指定的点。
LookAt(Point3D, double, double)更改相机以查看指定的点。
LookAt(Point3D, Vector3D, double)更改相机以查看指定的点。
OnApplyTemplate()
ResetCamera()复位相机
SetView(Point3D, Vector3D, Vector3D, double)设置相机的位置和方向
FitView(Vector3D, Vector3D, double)设置相机方向,并调整相机位置以使模型适合视图。
ZoomExtents(double)缩放到屏幕的范围
ZoomExtents(Rect3D, double)缩放到屏幕的范围
OnLookAtChanged()触发LookAtChanged事件
OnZoomedByRectangle()触发ZoomedByRectangle事件
OnCameraChanged()处理相机改变
OnHeadlightChanged()处理“IsHeadLightEnabled”属性更改事件。
OnItemsChanged(NotifyCollectionChangedEventArgs )当项目改变的时候被触发
OnItemsSourceChanged(IEnumerable, IEnumerable)当项目源改变时被触发
OnMouseMove(MouseEventArgs)鼠标移动事件
RaiseCameraChangedEvent()触发相机改变事件
UpdateCursorPosition(Point)更新光标位置
AddItems(IEnumerable )添加指定项目
CameraPropertyChanged(object, EventArgs )处理当前相机改变事件
CompositionTargetRendering(object, EventArgs )处理CompositionTarget控件的渲染事件
CopyHandler(object, ExecutedRoutedEventArgs )处理复制命令
OnCameraRotationModeChanged()处理相机模式更改
OnControlLoaded(object, RoutedEventArgs )处理载入事件
OnControlUnloaded(object, RoutedEventArgs )处理卸载事件
OnOrthographicChanged()处理更改 为Orthographic相机事件。
OnShowFrameRateChanged()处理帧速率更改事件
OnShowTriangleCountInfoChanged()处理帧速率显示信息更改事件
OrthographicToggle(object, ExecutedRoutedEventArgs )处理平行相机更改命令
RemoveItems(IEnumerable)移除指定项目
SubscribeToRenderingEvent()订阅渲染事件
UnsubscribeRenderingEvent()取消订阅渲染事件
UpdateCameraInfo()更新相机信息
UpdateFieldOfViewInfo()更新视野信息
UpdateRenderingEventSubscription()更新订阅渲染事件
ViewCubeViewportMouseEnter(object, MouseEventArgs )处理鼠标进入多维立方体事件
ViewCubeViewportMouseLeave(object, MouseEventArgs )处理鼠标离开多维立方体事件

6 IHelixViewport3D(三维视口界面)

属性:

Camera获得相机
CameraController获得相机控制器
Lights获得灯光
Viewport获得视口

方法:

Copy()将视图复制到剪贴板
CopyXaml()将视图以xaml格式复制到剪贴板
Export(string fileName)将视图导出到指定的文件名
ZoomExtents(double缩放范围

7 InputBindingX(输入绑定支持绑定的手势)

属性:

Gezture获得或设置手势

方法:

GeztureChanged(DependencyObject, DependencyPropertyChangedEventArgs)手势改变时发生
OnGeztureChanged()手势改变时调用

4.Converters

(1)EnumToBooleanConverter(枚举类型转布尔类型接口)

方法:

Convert(object, Type, object, CultureInfo)转换值。如果返回null,则使用null值
ConvertBack(object, Type, object , CultureInfo)转换值。如果返回null,则使用null值

(2)LinearConverter(线性转换)

属性:

B获得或设置值
M获得或设置值

方法:

Convert(object, Type, object, CultureInfo)转换值,方法返回null,则null为有效值
ConvertBack(object, Type, object , CultureInfo)转换值,方法返回null,则null为有效值
GetDoubleValue(object, double)得到双精度的值

(3)NotNullToVisibilityConverter(非空值转换为Visiblity值的转换)

属性:

Inverted获取或设置一个值,表示该转换器是否反相

方法:

NotNullToVisibilityConverter()初始化一个NotNullToVisibilityConverter()的新实例
Convert(object, Type, object, CultureInfo)转换值,方法返回null,则null为有效值
ConvertBack(object, Type, object , CultureInfo)转换值,方法返回null,则null为有效值

(4)SelfProvider(提供实例本身的MarkupExtension)

方法:

ProvideValue(IServiceProvider)在派生类中实现时,返回一个设置为此标记扩展的目标属性值的对象

(5)StringToBooleanConverter(字符串向布尔类型的转换器)

方法:

Convert(object, Type, object, CultureInfo)转换值,方法返回null,则null为有效值
ConvertBack(object, Type, object , CultureInfo)转换值,方法返回null,则null为有效值

5.Exporters(导出)

(1)BitmapExporter(将Viewport3D导出为.bmp,.png或.jpg文件)

属性:

Background获取或设置背景色
Format获取或设置文件名(png、jpg。bmp)
OversamplingMultiplier获取或设置过采样乘数

方法:

BitmapExporter()初始化BitmapExporter的新实例
Export(Viewport3D, Stream)导出指定的图形
Export(Visual3D, Stream)导出指定的视口
Export(Model3D, Stream)导出指定的模型

(2)ColladaExporter(将3D图形导出为Collada文件)

属性:

Author获取或设置作者
Comments获取或设置注释
Copyright获取或设置版权

方法:

Export(Viewport3D, Stream)导出指定的视口
XmlWriter Create(Stream)在指定的流上创建一个新的XmlWriter。
Close(XmlWriter)关闭此导出
ExportModel(XmlWriter, GeometryModel3D, Transform3D)导出模型
WriteAssets(XmlWriter,Viewport3D)写入文件资产
BindMaterial(XmlWriter, string, string)绑定指定的几何形状和材料
ExportEffect(XmlWriter, GeometryModel3D)导出指定模型的效果
ExportEffect(XmlWriter, Material )导出指定材料的效果
ExportGeometry(XmlWriter, GeometryModel3D Transform3D)导出指定模型的几何形状
ExportLight(XmlWriter, Light )导出指定灯光
ExportMaterial(XmlWriter, GeometryModel3D)导出指定模型的材料。
ExportMaterial(XmlWriter, Material)导出指定材料
ExportNode(XmlWriter, GeometryModel3D, Transform3D)将指定的模型导出为节点
ExportSceneNode(XmlWriter, Model3D, Transform3D)将指定的模型导出为场景节点
WriteColor(XmlWriter, Color)写入指定的颜色
WriteDouble(XmlWriter, string, double)写入指定的元素值
WriteMatrix(XmlWriter, string, Matrix3D)写入指定的元素矩阵
WritePhongMaterial(XmlWriter, string, Color )写一个电子材料

(3)Exporter(导出)

方法:

Export(Viewport3D, Stream)导出指定的视口
Export(Visual3D, Stream)导出指定的图形
Export(Model3D, Stream)导出指定的模型
Create(Stream)
Close(T)
ExportCamera(T, Camera)导出相机
ExportHeader(T)导出标题
ExportLight(T, Light, Transform3D)导出灯光
ExportModel(T, GeometryModel3D, Transform3D)导出模型
ExportViewport(T, Viewport3D)导出视口
RenderBrush(Stream, Brush, int w, int, int)将画笔渲染为JPG图像
RenderBrush(Stream, Brush, int w, int)将画笔渲染为PNG图像
RenderBrush(Brush, int ,int)渲染指定的画笔
Encode(RenderTargetBitmap, Stream)将指定的位图编码为PNG图像
Encode(RenderTargetBitmap, Stream, int)将指定的位图编码为JPG图像

(4)Exporters(包含所有支持的导出的列表)

方法:

Create(string)基于指定路径的扩展创建导出器

(5)IExporter(指定导出3D模型的功能)

方法:

Export(Viewport3D, Stream)导出指定的视口(包括型号,相机和灯)
Export(Visual3D, Stream);导出指定的图形
Export(Model3D, Stream);导出指定的模型

8 KerkytheaExporter(将3D图形导出到Kerkythea 输入文件)

属性:

RenderSettings渲染设置(RayTracer, PhotonMap, MetropolisLightTransport)
Aperture获取或设置光圈
BackgroundColor获取或设置背景色
FileCreator获取或设置纹理文件创建者
FocalLength获取或设置焦点的长度
FocusDistance获取或设置焦距
Height获取或设置高度
LensSamples获取或设置镜头样品
LightMultiplier获取或设置光乘数
Name获取或设置名字
ReflectionColor获取或设置反射的颜色
Reflections获取或设置一个值,表示这个KerkytheaExporter是否是反射
RenderSetting获取或设置渲染设置
ShadowColor获取或设置阴影颜色
Shadows获取或设置一个值,指示此KerkytheaExporter”是否为阴影
SoftShadows获取或设置一个值,指示[软阴影]
TextureHeight获取或设置纹理的高度
TexturePath获取或设置纹理路径
TextureWidth获取或设置纹理的宽度
Threads获取或设置线程
Width获取或设置宽度

方法:

KerkytheaExporter()初始化KerkytheaExporter的一个新实例
ExportMesh(KerkytheaWriter, MeshGeometry3D )导出网格
RegisterMaterial(Material, Stream)注册材料
WriteMetropolisLightTransport(KerkytheaWriter, string)
WriteStandardRayTracer(KerkytheaWriter , string)写入标准的射线追踪器属性
WriteThreadedRaytracer(KerkytheaWriter, int)
KerkytheaWriter Create(Stream)创建指定流的作者。
ExportCamera(KerkytheaWriter, Camera )导出相机
ExportHeader(KerkytheaWriter)导出文本标题
ExportLight(KerkytheaWriter, Light, Transform3D )导出灯光
ExportModel(KerkytheaWriter, GeometryModel3D, Transform3D)导出模型
ExportViewport(KerkytheaWriter, Viewport3D)导出指定视图
Close(KerkytheaWriter)关闭导出
CreateTransform(Point3D, Vector3D, Vector3D)创建转换
ToKerkytheaString(Point)转换点到字符串格式
ToKerkytheaString(Point3D转换点到字符串格式
ToKerkytheaString(Vector3D vector)转换3D向量到字符串格式
ToKerkytheaString(Color )转换颜色到字符串格式
ExportMapChannel(KerkytheaWriter, MeshGeometry3D)从指定的网格导出地图通道(纹理坐标)
ExportMaterial(KerkytheaWriter, string, Material, IList)导出材料
ExportMaterial(KerkytheaWriter, Material)导出指定材料
GetSolidColor(Brush, Color)获取单一画刷
GetTexture(KerkytheaWriter , Brush, string获取画笔的纹理
GetUniqueName(KerkytheaWriter, DependencyObject, string)获取唯一名字
WriteBitmapTexture(KerkytheaWriter, string, string)写一个位图纹理
WriteConstantTexture(KerkytheaWriter, string, Color)写一个不变的纹理
WriteDielectricMaterial(KerkytheaWriterr, string,Color?,Color?, double,double, string)写一个电介质材料
WriteWeight(KerkytheaWriter, string, double)写一个重量
WriteWhittedMaterial(KerkytheaWriter , string, string, Color?, Color?, Color?, double double)写一个白色的材料
ValueOrDefault(double, double)默认值
KerkytheaWriter(Stream)初始化KerkytheaWriter的新实例
WriteStartElement(string)写入起始元素
WriteAttributeString(string ,string)写入属性字符串
WriteEndElement()写入最终元素
WriteFullEndElement()写入完整的元素
WriteStartDocument()写入开始文件
void Close()关闭此实例。
WriteParameter(string, string, string )写一个参数
WriteParameter(string, string)写入一个字符串参数
WriteParameter(string, Color)写入一个颜色参数
WriteParameter(string, bool)写入一个布尔参数
WriteParameter(string, double)写入一个双精度参数
WriteParameter(string, int)写入一个整形参数
WriteTransform(string, Matrix3D )写一个转换矩阵
WriteEndObject()写最终对象
WriteObject(string, string , string, string)写对象
WriteStartObject(string, string, string, string)写入起始对象
WriteEndDocument()写入最终文件
Write(XmlNode)写入指定的XML节点
TryGetTexture(Brush, out string)尝试获取指定画笔的纹理
AddTexture(Brush, string)添加指定的纹理
GetUniqueName(string, string)获得一个唯一的名字

9 ObjExporter(导出为OBJ文件)

属性:

ExportNormals获取或设置一个值,指示是否导出法线
FileCreator取或设置纹理图像和素材文件创建者
UseDissolveForTransparency获取或设置一个值,指示是否使用“d”作为透明度(默认为“Tr”)
Comment获取或设置注释
MaterialsFile获取或设置材料文件
SwitchYZ获取值,指示是否转换Y和 Z坐标值
TextureFolder获取或设置纹理文件夹
TextureExtension获取或设置纹理扩展
TextureSize获取或设置纹理大小
TextureQualityLevel获取或设置纹理质量级别(用于JPEG编码)

类:ObjWriters

ObjWriter
MaterialsWriter

方法:

ExportMesh(StreamWriter, MeshGeometry3D, Transform3D)导出网格
ObjWriters Create(Stream)创建指定流
Close(ObjWriters)关闭导出
ExportModel(ObjWriters, GeometryModel3Dl, Transform3D)导出模型
ExportMaterial(StreamWriter, string, Material, Material)导出材料
ToColorString(Color)将颜色转换为字符串

10 PovRayExporter(导出PovRay文件)

方法:

StreamWriter Create(Stream)创建指定的流
Close(StreamWriter)关闭导出
ExportCamera(StreamWriter,Camera)导出相机
ExportLight(StreamWriter, Light, Transform3D)导出灯光
ExportModel(StreamWriter, GeometryModel3D, Transform3D)导出模型

11 RenderManExporter(导出为Render文件)

  1. 方法:
    | StreamWriter Create(Stream) | 创建指定的流 |
    | — | — |
    | Close(StreamWriter) | 关闭导出 |
    | ExportCamera(StreamWriter,Camera) | 导出相机 |
    | ExportLight(StreamWriter, Light, Transform3D) | 导出灯光 |
    | ExportModel(StreamWriter, GeometryModel3D, Transform3D) | 导出模型 |

(10)StlExporter(导出为STereoLithography二进制文件)

方法:

BinaryWriter Create(Stream)创建BinaryWriter来写STereoLithography二进制文件
Close(BinaryWriter)关闭BinaryWriter
Export(Viewport3D, Stream)导出指定视口
Export(Visual3D, Stream)导出指定Visual3D
Export(Model3D, Stream)导出指定Model3D
ExportHeader(BinaryWriter, int)写一个空的STL标题
ExportModel(BinaryWriter, GeometryModel3D, Transform3D)将GeometryModel3D写入STL二进制格式的 “BinaryWriter”。

(11)VrmlExporter(导出VRML97文件)

属性:

Title获取或设置标题

方法:

StreamWriter Create(Stream)给指定流创建Writer
Close(StreamWriter)关闭导出Writer
ExportModel(StreamWriter, GeometryModel3D, Transform3D)导出模型

12 X3DExporter(导出X3D文件)

属性:

Metadata获取元数据
Title设置标题

方法:

XmlWriter Create(Stream)创建指定流的Writer
Close(XmlWriter)关闭导出
ExportHeader(XmlWriter)导出标题
ExportModel(XmlWriter, GeometryModel3D, Transform3D )导出模型

13 XamlExporter(导出为XMAL)

属性:

CreateResourceDictionary获取或设置一个值指示是否创建资源字典

方法:

WrapInResourceDictionary(object)在资源字典中包装指定的对象
Export(Viewport3D, Stream)导出指定的视口
Export(Visual3D, Stream)导出指定的视图
Export(Model3D, Stream)导出指定的模型
XmlWriter Create(Stream)为指定流创建XmlWriter
Close(XmlWriter)关闭导出

6.ExtensionMethods(扩展方法)

(1)AnimationExtensions(动画扩展)

方法:

AnimateOpacity(this, double, double)动画指定对象的不透明度

(2)Matrix3DExtensions(Matrix3D变换扩展)

方法:

Inverse(this Matrix3D)返回反向矩阵
ToArray(this Matrix3D)转换Matrix3D为二维
ToString(this Matrix3D, int)将矩阵转换为字符串,“\ t”和“\ n”作为分隔符。
ToString(this Matrix3D, string, int)将矩阵转换为字符串
ToString(this Matrix3D, string, string, string, int, CultureInfo)将矩阵转换为字符串
ConvertToString(this Matrix3D, string, int)将矩阵转换为字符串
ConvertToString(this Matrix3D, string, string, string, in, CultureInfo)将矩阵转换为字符串

(3)Point3DExtensions(point3D扩展)

方法:

DistanceTo(this Point3D, Point3D)计算从p1到p2的距离。
DistanceToSquared(this Point3D, Point3D)计算从p1到p2的平方距离。
ToVector3D(this Point3D)转换Point3D到Vector3D
Multiply(this Point3D, double)将指定点与标量相乘
Sum(params Point3D[])计算指定点

(4)StringExtensions(字符串扩展)

方法:

SplitOnWhitespace(this string)用空格拆分字符串
EnumerateToString(this IEnumerable, string, string)从可枚举的项目中创建一个字符串

(5)Vector3DExtensions(Vector3D扩展)

方法:

FindAnyPerpendicular(this Vector3D)找到指定向量的垂直向量
IsUndefined(this Vector3D)确定指定的向量是否未定义(NaN,NaN,NaN)
ToPoint3D(this Vector3D)转换Vector3D到Point3D

7.Geometry(几何形状)

(1)BoundingSphere(边界球)

属性:

Center圆的中心点
Radius圆的直径

方法:

CreateFromPoints(IEnumerable)从一组点创建一个有界的球体
CreateFromRect3D(Rect3D)从 “Rect3D”创建一个 “BoundingSphere”。
CreateMerged(BoundingSphere, BoundingSphere)创建一个合并的边界球体
Contains(Point3D)确定指定点是否在球体内
DistanceFrom(Point3D)计算从点到球面上最近点的距离。
Intersects(BoundingSphere)确定球体是否与指定球体相交
RayIntersection(Ray3D, out Point3D[])获取与指定光线的交点

(2)LineSegment(线段)

属性:

P1获取线段的第一个点
P2获取线段的第二个点

方法:

AreLineSegmentsIntersecting(Point, Point, Point, Point)检查两个线段是否有交点
IntersectsWith(LineSegment)指示指定的线段是否与当前线段相交。

(3)Mesh3D(3D网格)

属性:

Edges获得边缘
Faces获得面
TextureCoordinates获得纹理坐标
Vertices获取顶点

方法:

AddFace(params int[])添加面
Clone()创建一个新对象,该对象是当前实例的副本
FindCentroid(int)找到指定面的质心
FindFaceFromEdge(int, int)从边缘找到面
GetBounds()获得边界
GetFaceNormal(int)获得面的向量
GetNeighbourVertices(int)获得相邻顶点
IsQuadrilateralMesh()确定网格是否仅包含四边形面
IsTriangularMesh()确定网格是否仅包含三角形面
Quadrangulate()将网格转换为四边形网格
ToMeshGeometry3D(bool, double, List)将网格转换为MeshGeometry3D
Triangulate(bool )对指定的网格进行三角测量
UpdateEdges()更新边缘
FindMidpoint(int, int)找到指定边的中点

(4)Plane3D(平面3D)

属性:

Normal法线
Position位置

方法:

LineIntersection(Point3D, Point3D)找到平面和一条线之间的交点

(5)Polygon(2D多边形)

属性:

Points获取或设置点

方法:

Triangulate()使用扫描线算法对多边形进行三角测量

(6)Polygon3D(3D多边形)

属性:

Points获取或设置点

方法:

Flatten()使多边形为平面
GetNormal()获取多边形的法线
IsPlanar()确定这个多边形是否是平面的

(7)Ray3D(3D伞形)

属性:

Direction设置方向
Origin设置起始点

事件:

GetNearest(Point3D )得到最接近指定点的射线点
PlaneIntersection(Point3D,Vector3D)找到与平面的交点
PlaneIntersection(Point3D, Vector3D , out Point3D)找到与平面的交点,如果找到返回True

(8)Triangle(二维平面三角形)

属性:

P1得到三角形第一个点
P2得到三角形第二个点
P3得到三角形第三个点

方法:

IsCompletelyInside(Rect rect)检查指定的矩形是否完全在当前三角形内
IsRectCompletelyInside(Rect rect)检查指定的矩形是否完全在当前三角形内
IsPointInside(Point p)检查指定点是否在三角形内
IntersectsWith(Rect rect)指示指定的矩形是否与当前三角形相交

8.Helpers

(1)ScreenSpace

(1.1)Billboard
(1.2)BillboardGeometryBuilder(为Billboard的集合构建网格图形)

方法:

CreateIndices(int)创建三角形索引
GetPositions(IList, Vector)使用当前屏幕转换获取Billboard位置。
GetPinPositions(IList, Vector, double)使用当前屏幕转换获取Billboard位置
(1.3)CohenSutherlandClipping(提供针对矩形的线剪辑)

方法:

ClipLine(ref double x0, ref double y0, ref double x1, ref double y1)使用(xmin,ymin)和(xmax,ymax)对角地限制的剪辑矩形来计算点(x,y)的位代码
IsInside(double x, double y)根据位置返回一个值
ComputeOutCode(double, double)计算出位代码
(1.4)LineGeometryBuilder(构建线段集合的网格几何图形)

方法:

CreateIndices(int)创建三角形索引。
CreatePositions(IList,double, double, ohenSutherlandClipping)创建指定线段的位置
(1.5)PointGeometryBuilder(构建点集合的几何形状)

方法:

CreateIndices(int)创建三角形索引。
CreatePositions(IList,double, double, ohenSutherlandClipping)创建指定线段的位置
(1.6)ScreenGeometryBuilder(用于构建平面几何形状的基类)

方法:

UpdateTransforms()更新变换

(2)WeakEventListeners

(2.1)RenderingEventListener(提供将CompositionTarget.Rendering事件传递给指定处理程序的弱事件监听器)
(2.2)WeakEventListener{TEventManager,TEventArgs}(提供一个弱事件监听器,它将指定事件管理器的事件传递给指定的事件处理程序)

方法:

IWeakEventListener.ReceiveWeakEvent(Type, object, EventArgs )从集中式事件管理器接收事件

(3)WeakEventManagers

(3.1)AttachedProperties(提供附加属性)

方法:

GetName(this DependencyObject)得到模型名称
SetName(this DependencyObject, string)设置模型名称
(3.2)BrushHelper(提供创建画笔的方法)

方法:

ChangeOpacity(Brush, double)创建具有指定透明度的画笔的副本
CreateGradientBrush(params Color[])从给定的颜色创建渐变画笔
CreateGradientBrush(IList, bool)从颜色列表中创建渐变画笔
SolidColorBrush CreateGrayBrush(double)创建一个灰色的画笔
CreateHsvBrush(double, bool)创建一个HSV的画笔
CreateRainbowBrush(bool)创建彩虹画刷
CreateSteppedGradientBrush(IList, bool)从颜色列表中创建“渐变”画笔。
CreateSteppedGradientBrush(LinearGradientBrush)创建阶梯式渐变画笔
CreateSteppedGradientBrush(LinearGradientBrush, int)创建阶梯式梯度刷
CreateSteppedHsvBrush(int)创建一个逐步的HSV画刷
(3.3)CameraHelper(提供Camera派生类的扩展方法)

方法:

AnimateTo(this ProjectionCamera, Point3D, Vector3D, Vector3D, double)动画相机的位置和方向
AnimateWidth(this OrthographicCamera, double, double)动画正交宽度
ChangeDirection(this ProjectionCamera, Vector3D, Vector3D, double)改变相机方向
Copy(this ProjectionCamera, ProjectionCamera, bool)复制指定的相机,如有必要,转换视场/宽度
CopyDirectionOnly(this ProjectionCamera, ProjectionCamera, double)复制相机源的方向
GetInfo(this Camera)获取有关指定摄像头的信息字符串
LookAt(this ProjectionCamera, Point3D, double)设置摄像机目标点
LookAt(this ProjectionCamera, Point3D, Vector3D , double)设置摄像机目标点和摄像机方向
LookAt(this ProjectionCamera, Point3D, Vector3D, Vector3D, double)设置摄像机目标点和方向
LookAt(this ProjectionCamera, Point3D, double, double)设置摄像机目标点和相机距离
Reset(this Camera)重置指定的正摄相机
Reset(this PerspectiveCamera)重置指定的正摄相机
Reset(this OrthographicCamera)重置指定的正摄相机
GetViewMatrix(this Camera)获取相机的视图变换矩阵
GetProjectionMatrix(this Camera, double)获取指定相机的投影矩阵
GetTotalTransform(this Camera, double)获得组合的视图和投影变换
GetInverseTransform(this Camera, double)获取逆相机变换
FitView(this ProjectionCamera, Viewport3 double)适合当前视图中的当前场景
FitView(this ProjectionCamera, Viewport3D, Vector3D, Vector3D, double)适合当前视图中的当前场景
ZoomExtents(this ProjectionCamera, Viewport3D, double)缩放以适应指定视口的范围
ZoomExtents(this ProjectionCamera, Viewport3, Rect3D, double)缩放以适应指定的边界矩形
FitView(this ProjectionCamera, Viewport3D, Rect3D, Vector3D, Vector3D, double)适合当前视图中指定的边界矩形
ZoomExtents(ProjectionCamera, Viewport3D, Point3D, double, double)缩放以适应指定的球体
FitView(ProjectionCamer, Viewport3D, Point3D, double, Vector3D, Vector3D, double)使视图适合于边界球
ZoomToRectangle(this ProjectionCamera, Viewport3D, Rect)将相机缩放到指定的矩形
(3.4)CanonicalSplineHelper

方法:

CreateSpline(IList, double, IList, bool , double)创建点的样条
Segment(IList, Point3D, Point3D, Point3D, Point3D, double, double ,double)分割
(3.5)ColorHelper(颜色辅助方法)

方法:

ChangeAlpha(this Color, byte)更改颜色的alpha值
ChangeIntensity(this Color, double)改变强度
ColorDifference(Color, Color)计算两个颜色之间的差异
ColorToHex(Color)将“Color”转换为十六进制字符串
ColorToHsv(Color)将“Color”转换为HSV值(双精度)
ColorToHsvBytes(Color)将“Color”转换为HSV值(字节)
ColorToUint(Color)将“Color”转换为无符号整形
Complementary(Colo)计算互补色
HexToColor(string)将十六进制字符串转换为 “Color”。
HsvToColor(byte, byte, byte)将HSV转换为 “Color”。
HsvToColor(double[])从指定的HSV创建一个颜色。
HsvToColor(double, double , double)从HSV转换为Color
HueDifference(Color, Color)计算两个 “Color”之间的色相差
Interpolate(Color, Color, double)两个“Color”之间的线性插值
UIntToColor(uint)转换无符号整型到Color
(3.6)ContourHelper(提供通过3顶点平面计算轮廓面的功能。)

方法:

ContourFacet(int, int, int, out Point3D[], out Vector3D[], out Point[], out int[])通过3顶点构面创建轮廓面
CalculatePoint(double, double, double, double)计算一个新的点坐标
GetContourFacet()获取当前构面的 “ContourFacetResult”。
SetData(int, int, int)初始化面数据,并从指定的三角形索引中计算出 “sides”值
CreateNewPosition(int, int)计算由两个三角形索引指定的边的平面交叉点的位置
CreateNewNormal(int, int)计算由两个三角形索引指定的边的平面交叉点的法线
CreateNewTexture(int, int)计算由两个三角形索引指定的边的平面交点处的纹理坐标。
IsSideAlone(int)确定指定索引处的顶点是否位于其他两个顶点的相反侧。
AllSidesBelowContour()确定平面的所有边是否在轮廓之下
(3.7)DependencyPropertyEx(提供通用依赖属性寄存器方法)
(3.8)DoubleKeyDictionary(双键字典)

属性:

OuterDictionary获取或设置OuterDictionary

方法:

Clear()清除字典
Add(K key1, T key2, V value)添加指定键值
ContainsKey(K index1, T index2)确定指定的字典是否包含该键
Equals(DoubleKeyDictionary<K, T, V>)等于指定值
GetEnumerator()获取枚举器
Remove(K key1, T key2)移除指定键值
IEnumerable.GetEnumerator()返回一个遍历集合的枚举器

类:DoubleKeyPairValue
属性:

Key1键值1
Key2键值2
Value获取或设置值

方法:

ToString()返回代表此实例的 “System.String”。
(3.9)ElementSortingHelper(通过透明度和与相机的距离对元素进行排序。)

方法:

AlphaSort(Point3D, Model3DCollection, Transform3D)从近到远进行排序,当场景重新排序时使用不同透明度
GetDistanceSquared(Point3D, Visual3D)获得距离平方
GetDistanceSquared(Point3D, GeometryModel3D)获得距离平方
IsTransparent(Visual3D)确定指定的视觉是否透明
IsTransparent(Model3D)确定指定的模型是否透明
IsTransparent(GeometryModel3D)确定指定的模型是否透明
IsTransparent(Materia)确定指定材料的任何部分是否透明
IsTransparent(Brush)确定指定的画笔是否透明。
SortModel(Point3D, IList)排序场景 - 第一个不透明对象,然后按照距离相机排列的透明对象
(3.10)GradientBrushes(包含一组预定义的渐变画笔)

属性:

BlueWhiteRed蓝白色渐变刷。
Hue色相梯度刷
HueStripes12色条纹的色相梯度刷
Rainbow彩虹渐变刷
RainbowStripes12条彩虹刷
(3.12)GZipHelper(提供使用Gzip流压缩文件的方法)

方法:

Compress(string)使用标准的zlib压缩压缩文件
(3.13)IBoundsIgnoredVisual3D(定义visual3D类型,它的边界将被忽略)
(3.14)LoopSubdivision(细分方案 Loop,Warren)

属性:

Scheme获取或设置细分方案
Positions获得位置

方法:

ToMeshGeometry3D()创建几何形状
ToMesh3D()创建网格
Add(int v0, in, int)增加三角形
GetEdgeVertice(int, int, int )获得一个边缘点
SetEdgeVertice(int, int, int, int)设置一个边缘点
Sum(IEnumerable)指定向量的和
Sqr(double)平方值
Subdivide(int)细分这个实例
Subdivide()细分这个实例
AddEdgeVertice(int, int, int)添加一个边缘顶点
(3.15)MaterialHelper(提供创建材料的方法)


创建该对象的方法: public Flag(string image)
{
Mesh = new MeshGeometry3D();
Material = MaterialHelper.CreateImageMaterial(image);
Damping = 0.98;
integrator = new VerletIntegrator() { Iterations = 4, Damping = this.Damping };
WindSpeed = 6;
WindDirection = 180;
PoleHeight = 12;
Height = 3;
Length = 4;
Mass = 0.8;
}
private void CreateFlag()
{
Flag = new Flag(“Examples/Cloth/FlagOfNorway.png”);
Flag.Init();

        FlagModel = new GeometryModel3D
                        {
                            Geometry = Flag.Mesh,
                            Material = Flag.Material,
                            BackMaterial = Flag.Material
                        };
    }

方法:

ChangeOpacity(Material, double)改变材料透明度
CreateImageMaterial(string, double, UriKind, bool)从指定的位图文件创建一个材质
CreateImageMaterial(BitmapImage, double, bool)从指定的图像创建材质
CreateEmissiveImageMaterial(string, Brush, UriKind, bool)创建发光图片材料。
CreateEmissiveImageMaterial(BitmapImage, Brush, bool)从指定的图像创建发光材料
CreateMaterial(Color)创建指定颜色的材料
CreateMaterial(Color, double)创建指定颜色和透明度的材料
CreateMaterial(Brush, double, byte, bool)使用指定的画笔创建材质为漫反射材质
CreateMaterial(Brush, double, double, byte, bool)使用指定的画笔创建材质为漫反射材质
CreateMaterial(Brush, Brush, Brush, double, double, bool)使用指定的漫反射和镜面光创建材质
GetFirst(Material)获取指定类型的第一个材料
GetImage(string, UriKind)从指定的uri获取图像
(3.16)Materials(包含一组预定义的材料)

镜面强度:

<helix:SphereVisual3D Center=“-6,0,0” Radius=“1” Material=“{helix:Material Black, SpecularIntensity=0.4}”/>
<helix:SphereVisual3D Center=“-3,0,0” Radius=“1” Material=“{helix:Material Black, SpecularIntensity=0.6}”/>
<helix:SphereVisual3D Center=“0,0,0” Radius=“1” Material=“{helix:Material Black, SpecularIntensity=0.8}”/>
<helix:SphereVisual3D Center=“3,0,0” Radius=“1” Material=“{helix:Material Black, SpecularIntensity=0.9}”/>
<helix:SphereVisual3D Center=“6,0,0” Radius=“1” Material=“{helix:Material Black, SpecularIntensity=1.00}”/>
镜面光焦度:

<helix:SphereVisual3D Center=“-6,0,0” Radius=“1” Material=“{helix:Material Black, SpecularPower=25}”/>
<helix:SphereVisual3D Center=“-3,0,0” Radius=“1” Material=“{helix:Material Black, SpecularPower=50}”/>
<helix:SphereVisual3D Center=“0,0,0” Radius=“1” Material=“{helix:Material Black, SpecularPower=100}”/>
<helix:SphereVisual3D Center=“3,0,0” Radius=“1” Material=“{helix:Material Black, SpecularPower=150}”/>
<helix:SphereVisual3D Center=“6,0,0” Radius=“1” Material=“{helix:Material Black, SpecularPower=200}”/>
透明度:

<helix:CubeVisual3D Center=“-6,0,0” SideLength=“2.5” Material=“{helix:Material Red, Opacity=0.05}”/>
<helix:CubeVisual3D Center=“-3,0,0” SideLength=“2.5” Material=“{helix:Material Red, Opacity=0.25}”/>
<helix:CubeVisual3D Center=“0,0,0” SideLength=“2.5” Material=“{helix:Material Red, Opacity=0.5}”/>
<helix:CubeVisual3D Center=“3,0,0” SideLength=“2.5” Material=“{helix:Material Red, Opacity=0.75}”/>
<helix:CubeVisual3D Center=“6,0,0” SideLength=“2.5” Material=“{helix:Material Red, Opacity=0.95}”/>
属性:

BlackMaterialBlack
DarkGrayMaterialDarkGray
GrayMaterialGray
LightGrayMaterialLightGray
WhiteMaterialWhite
HueMaterialHue
RainbowMaterialRainbow
RedMaterialRed
OrangeMaterialOrange
YellowMaterialYellow
GreenMaterialGreen
BlueMaterialBlue
IndigoMaterialIndigo
VioletMaterialViolet
BrownMaterialBrown
GoldMaterialBrown
(3.17)MeshBuilder(构建MeshGeometry3D对象)


倒角立方体:
private ModelVisual3D CreateDice()
{
var diceMesh = new MeshBuilder();
diceMesh.AddBox(new Point3D(0, 0, 0), 1, 1, 1);
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; j++)
for (int k = 0; k < 2; k++)
{
var points = new List();
diceMesh.ChamferCorner(new Point3D(i - 0.5, j - 0.5, k - 0.5), 0.1, 1e-6, points);
//foreach (var p in points)
// b.ChamferCorner(p, 0.03);
}
return new ModelVisual3D { Content = new GeometryModel3D { Geometry = diceMesh.ToMesh(), Material = Materials.White } };
}
属性:

Normals获取网格的法向量
Positions获取网格的位置集合
TextureCoordinates获取网格的纹理坐标
TriangleIndices获取三角形索引
CreateNormals获取或设置一个指示是否创建法向量的值
CreateTextureCoordinates获取或设置一个指示是否创建纹理坐标的值

方法:

GetCircle(int, bool)获取一个圆形
GetCircleSegment(int, double I, double)获取一个圆圈段。
AddArrow(Point3D, Point3D, double, double, int)向网格添加箭头
AddBoundingBox(Rect3, double)将边框的边添加为圆柱
AddBox(Point3D, double, double, double)添加与X,Y和Z轴对齐的框
AddBox(Rect3D)添加与X,Y和Z轴对齐的框
AddBox(Point3D, double, double, double, BoxFaces)添加一个带有指定面的框,与X,Y和Z轴对齐
AddBox(Point3D, Vector3D, Vector3D y, double xlength, double ylength, double, BoxFaces)添加一个带指定面的框,与指定的轴对齐
AddCone(Point3, Vector3D, doubl, double , double, bool, bool,int)添加(可能带头)的锥体
AddCone(Point3D, Point3D, double, bool, int)添加锥体
AddCubeFace(Point3D, Vector3D, Vector3D, double, double, double)添加立方体面
AddCylinder(Point3D, Point, double, int)向网格添加圆柱体
AddDodecahedron(Point3D, Vector3D, Vector3D, double)生成十二面体
AddEdges(IList, IList, double , int)将边缘集合添加为圆柱体
AddExtrudedGeometry(IList, Vector3D, Point3D, Point3D)添加指定曲线的挤压表面
AddPolygon(IList, Vector3D, Vector3D, Point3D)添加多边形
AddExtrudedSegments(IList, Vector3D, Point3, Point3D)添加指定线段的挤压表面
AddLoftedGeometry(IList<IList>,
IList<IList>, IList<IList>)添加一个抬高的表面
AddNode(Point3D, Vector3D, Point)添加一个节点
AddPipe(Point3D, Point3D, double, double, int)添加(可能是中空的)管道
AddPolygon(IList)添加多边形
AddPyramid(Point3D, double, double, bool)添加一个金字塔
AddPyramid(Point3D, Vector3D, Vector3D, double, double , bool)添加一个金字塔
AddOctahedron(Point3D, Vector3, Vector3, double, double)添加八面体
AddTetrahedron(Point3D, Vector3D, Vector3D, double)添加四面体
AddQuad(Point3D, Point3D, Point3D, Point3D)添加四边形多边形
AddQuad(Point3, Point3D, Point3D, Point3D, Point, Point, Point, Point)添加四边形多边形
AddQuads(IList, IList, IList)添加四边形多边形列表
AddRectangularMesh(IList, int)添加一个矩形网格(m×n个点)
AddRectangularMesh(Point3D[,], Point[,], bool, bool)添加由二维数组阵列定义的矩形网格。
AddRegularIcosahedron(Point3D, double, bool)添加常规二十面体
AddSurfaceOfRevolution(Point3D, Vector3D, IList<PointIList,IList)增添旋转的表面
AddRevolvedGeometry(IList, IList, Point3D, Vector3D, int)增添旋转的表面
AddSubdivisionSphere(Point3D, double, int)添加一个球体(通过细分一个常规的二十面体)
AddSphere(Point3D, double, int, int)添加一个球体
AddEllipsoid(Point3D, double, double, double, int, int)添加椭球
AddTriangle(Point3D, Point3D, Point3D)添加一个三角形
AddTriangle(Point3D, Point3D, Point3D, Poin, Point, Point)添加一个三角形
AddTriangleFan(IList)添加一个三角形风扇
AddTriangleFan(IList, IList, IList)向网格添加三角形风扇
AddTriangleStrip(IList, IList, IList)向网格添加三角形条
AddPolygon(IList)添加一个由顶点索引指定的多边形(使用三角形风扇)
AddPolygonByCuttingEars(IList)添加由顶点索引定义的多边形
AddPolygonByTriangulation(IList)添加由顶点索引定义的多边形(使用扫描线算法)
AddTriangles(IList,IList, IList)添加一个三角形列表
AddTube(IList, double[], double[], int, bool)添加管道
AddTube(IList, double, int, bool)添加管道
AddTube(IList, IList, IList, IList, boo, bool)添加一个带有自定义部分的管
AddTube(IList, IList, IList, IList, IList, Vector3D, bool, bool)添加一个带有自定义部分的管
Append(MeshBuilder)添加指定网格
Append(MeshGeometry3D mesh)添加指定网格
Append(IList,IList IList, IList )附加指定的点和三角形
ChamferCorner(Point3D, double, double, IList)倒角立方体
CheckPerformanceLimits()检查性能限制
Scale(double, double double)缩放位置(和法向量)
SubdivideLinear(bool)执行网格的线性细分
ToMesh(bool)将几何转换为 “MeshGeometry3D”。
GetUnitSphere(int)从缓存获取单位球体
AddRectangularMeshNormals(int index0, int, int s)为矩形网格添加法向量
AddRectangularMeshTextureCoordinates(int, int)添加矩形网格的纹理坐标。
AddRectangularMeshTriangleIndices(int, int rows, int, bool)为矩形网格添加三角形索引
AddRectangularMeshTriangleIndices(int, int, int, bool, bool)为矩形网格添加三角形索引
FindCornerNormal(Point3D, double)查找指定角的平均值
NoSharedVertices()确保没有三角形共享相同的顶点
Subdivide4()将每个三角形细分为四个子三角形。
SubdivideBarycentric()将每个三角形细分为六个三角形。 在每个三角形的中点添加一个顶点。
AddTorus(double, double, int, int )添加环面
(3.18)MeshGeometryHelper

方法:

CalculateNormals(IList, IList)计算法向量
CalculateNormals(MeshGeometry3D)计算法向量
FindBorderEdges(MeshGeometry3D)找到只连接到一个三角形的边
FindEdges(MeshGeometry3D)查找网格中的所有边缘(每个边缘仅包含一次)
FindSharpEdges(MeshGeometry3D, double)找到相邻三角形法向量之间的角度的所有边。
NoSharedVertices(MeshGeometry3D)创建一个没有顶点共享的新的网格
Simplify(MeshGeometry3D, double)简化指定的网格
Validate(MeshGeometry3D)验证指定的网格
Cut(MeshGeometry3D, Point3, Vector3D)用指定的平面切割网格
GetContourSegments(MeshGeometry3D, Point3D, Vector3D)获取轮廓段
CombineSegments(IList, double)组合细分
CreateKey(uin, uint)从两个32位索引创建一个64位密钥
ReverseKey(ulong, out uint, out uint)从64位密钥提取两个32位索引
FindConnectedSegment(IList, Point3, double)查找到指定点的最近连接的段
(3.19)Model3DHelper(为Model3D对象提供扩展方法)

方法:

GetTransform(this Model3D, Model3D, Transform3D)得到变换
Traverse(this Model3D, Action<T, Transform3D>)遍历Model3D树,并在指定类型的每个Model3D上调用指定的操作。
Traverse(this Model3D, Transform3D, Action<T, Transform3D>)遍历Model3D树,并在指定类型的每个Model3D上调用指定的操作。
(3.20)StereoHelper(包含立体视图的辅助方法)

方法:

CalculateStereoBase(double, double, double, double, double)使用完整的Bercovitz公式计算立体声基座
CalculateStereoBase(double, double, double, double)使用完整的Bercovitz公式计算立体声基座
CreateClone(Visual3D)创建Visual3D的克隆
FindFocalLength(double, double)找到给定视场和格式的焦距
UpdateStereoCameras(PerspectiveCamera, PerspectiveCamera, PerspectiveCamera, doubl bool, bool, bool)根据中央相机更新左右相机
(3.21)TextCreator(创建文本标签模型或视觉效果。)

方法:

CreateTextLabelModel3D(string, Brush, bool, double, Point3D, Vector3D, Vector3D)创建一个包含文本标签的Visual3D元素。
CreateTextLabelModel3D(string, Brus, bool, double, Point3D, Vector3D, Vector3D)为文本标签创建模型
(3.22)Transform3DHelper(Transform3D的辅助方法

方法:

CombineTransform(Transform3D, Transform3D)组合两种变换
(3.23)Viewport3DHelper(提供Viewport3D的扩展方法)


private void Export_Click(object sender, RoutedEventArgs e)
{
var d = new SaveFileDialog();
d.Filter = Exporters.Filter;
d.DefaultExt = Exporters.DefaultExtension;
if (!d.ShowDialog().Value)
{
return;
}

        Viewport3DHelper.Export(view1.Viewport, d.FileName);
    }

方法:

Copy(this Viewport3D, int)将指定的视口复制到剪贴板
Copy(this Viewport3D, double, doubl, Brush, int)将指定的视口复制到剪贴板
CopyXaml(this Viewport3D)将视口复制为XMAL剪贴板
Export(this Viewport3D, string, Brus)导出指定的视口。
ExportStereo(this Viewport3D, string, double, Brush)导出指定的视口。
FindHits(this Viewport3D, Point)找到指定命中的位置
FindHits(this Viewport3D, Rect, SelectionHitMode)找到指定命中的矩形
FindNearest(this Viewport3D, Point, out Point3D, out Vector3D, out DependencyObject)找到最近的视觉,命中点及其在指定位置的法线
FindNearestPoint(this Viewport3D, Point)找到指定位置处最近点的坐标
FindNearestVisual(this Viewport3D, Point)找到距离指定位置最近的Visual3D。
GetCameraTransform(this Viewport3DVisual)获取相机变换
GetCameraTransform(this Viewport3)获取相机变换(视口和投影)
GetLights(this Viewport3D)获得所有光
GetRay(this Viewport3D, Point)在指定位置获取光线
GetTotalTransform(this Viewport3DVisual)获取总体变换(摄像机和视口)
GetTotalTransform(this Viewport3D)获取总体变换(摄像机和视口)
GetTransform(this Viewport3D, Visual3D)获取指定视觉的总体变换。
GetViewMatrix(this Viewport3D)获取视图矩阵
GetProjectionMatrix(this Viewport3D)获取投影矩阵
GetViewportTransform(this Viewport3DVisual)获取视口转换。
GetViewportTransform(this Viewport3D)获取视口转换。
Point2DtoPoint3D(this Viewport3D, Point, out Point3D, out Point3D)将位置转换为近距离剪切平面处的Point3D
Point2DtoRay3D(this Viewport3D, Point)将2D点转换为射线。
Point3DtoPoint2D(this Viewport3D, Point3D)将Point3D转换为Point2D。
Print(this Viewport3D, string)打印指定的视口
RenderBitmap(this Viewport3D, Brush, int)将视口呈现为位图
RenderBitmap(this Viewport3D, doubl, doubl, Brush, int)将视口呈现为位图
ResizeAndArrange(this Viewport3D, double, double)调整和排列视口。
SaveBitmap(this Viewport3D, string,rush, int, BitmapExporter.OutputFormat)将视口保存到文件。
SaveStereoBitmap(this Viewport3D, string, double, Brush, int)将 “Viewport3D”保存到左/右位图
SaveBitmap(this Viewport3D, Stream, Brush, int, BitmapExporter.OutputForma)将 “Viewport3D”保存到位图。
SearchFor(this IEnumerable)在给定类型T的对象的Visual3D集合中递归搜索
UnProject(this Viewport3D, Point, Point3D, Vector3D)将一个点从屏幕(2D)转换到平面上的一个点(3D)
UnProject(this Viewport3D, Point )通过相机目标点将一个点从屏幕(2D)转换到平面上的一个点。
GetTotalNumberOfTriangles(this Viewport3D)获取视口中三角形的总数
CopyBitmap(BitmapSource, WriteableBitmap, int, int)复制位图
ExportKerkythea(this Viewport3, string, Brush)导出为Kerkythe文件
ExportKerkythea(this Viewport3D, string, Brush, in, int)导出为Kerkythe文件
ExportObj(this Viewport3D, string)导出为OBJ文件
ExportX3D(this Viewport3D, string)导出为3D文件
ExportCollada(this Viewport3D, string)导出为Collada文件
ExportStl(this Viewport3D, string)导出为STL文件
ExportXaml(this Viewport3D, string)导出为XAML
GetGlobalHitPosition(RayHitTestResult, Viewport3D)将命中位置转换为全局(视口)坐标
GetNormalHit(RayMeshGeometry3DHitTestResult)获得命中测试结果的法线
SearchFor(IEnumerable, Type, IList<Model3D)递归搜索给定类型的对象
SearchFor(IEnumerable, Type, IList)搜索指定类型的型号

类:RectangleHitResult
属性:

Model获得命中模型

类:HitResult
属性:

Distance获得距离
Mesh获得网格
Model获得模型
Normal获取或设置法线
Position获取或设置位置
RayHit获取或设置射线命中
Visual获得图形
(3.24)Visual3DHelper(提供Visual3D对象的扩展方法)

方法:

Find(DependencyObject)找到指定类型的第一个子类
FindBounds(this Visual3DCollection)找到Visual3D集合的边框。
FindBounds(this Visual3D, Transform3D)找到指定视觉的边框
GetTransform(this Visual3D)获取指定视觉的总变换
GetViewport3D(this Visual3D)从指定的视觉获取父级 “Viewport3D。
GetViewportTransform(this Visual3D)获取到视口空间的转换。
IsAttachedToViewport3D(this Visual3D)确定视觉是否附加到Viewport3D。
Traverse(this Visual3DCollection, Action<T, Transform3D>)遍历Visual3D / Model3D树,并在指定类型的每个Model3D上调用指定的操作。
Traverse(this Visual3, Action<T, Transform3D>)遍历Visual3D / Model3D树,并在指定类型的每个Model3D上调用指定的操作。
GetTransformTo(this Visual3D, Model3D)获取从指定的Visual3D到指定的Model3D的转换
GetViewport(this Visual3D)获取指定视觉的视口。
GetChildren(this Visual3D)获取子类
GetModel(this Visual3D)获取指定的Visual3D的模型。
Traverse(Visual3D, Transform3D, Action<T, Transform3D>)遍历视觉树,并在指定类型的每个对象上调用指定的操作。
(3.25)XamlHelper(提供帮助方法来生成xaml)

方法:

GetXaml(Viewport3D)获取指定视口的xaml。
GetXaml(object)获取指定对象的xaml。

9.Importers(导入)

(1)IModelReader(模型阅读器接口类)

方法:

Read(string)从指定的路径读取模型
Read(Stream)从指定的流中读取模型

(2)Importers:

默认文件导入扩展名为.obj;所有支持被导入的文件扩展名为*.3ds;.lwo;.obj;.objx;.stl;*.off

(3)LwoReader(灯光对象阅读器)

属性:

Materials获取材料
Meshes获取网格
Surfaces获取表面
Points获取点

方法:

Read(Stream)从指定的流中读取模型
BuildModel()构建模型
ReadChunkId(BinaryReader)阅读块ID
ReadChunkSize(BinaryReader)阅读块大小
ReadData(BinaryReader, int)读取一个块的数据块
ReadFloat(BinaryReader)阅读浮点型
ReadInt(BinaryReader)阅读整型
ReadPoints(BinaryReade, int)阅读点
ReadPolygons(BinaryReader, int)阅读多边形
ReadShortInt(BinaryReaderr)阅读短整形
ReadString(BinaryReader, int读一个字符串
ReadSurface(BinaryReader, int)阅读表面

(4)ModelImporter(从文件导入模型)

属性:

DefaultMaterial获取或设置默认材料

方法:

Load(string, Dispatcher = null, bool)从指定路径导入模型

Xaml:


<helix:HelixViewport3D Name=“viewport3D” Grid.Row=“0” ShowViewCube=“False” CameraRotationMode=“Trackball” InfiniteSpin=“False” ZoomExtentsWhenLoaded=“True” MouseDoubleClick=“viewport3D_MouseDoubleClick” PreviewMouseWheel=“viewPort3D_PreviewMouseWheel”>
helix:DefaultLights/
</helix:HelixViewport3D>

Cs:
public partial class MainWindow : Window
{
ModelVisual3D device;
public MainWindow()
{
InitializeComponent();
viewport3D.RotateGesture = new MouseGesture(MouseAction.LeftClick);
device= new ModelVisual3D();
device.Content = getModel(@“TestObj\BrandenburgGate\BrandenburgGate.Obj”);
viewport3D.Children.Add(device);
viewport3D.Children.Add(new LightVisual3D());
}
public Model3D getModel(string path)
{
Model3D device = null;
try
{
ModelImporter import = new ModelImporter();
device = import.Load(path);
}
catch (Exception e)
{
e.ToString();
}
return device;
}
}

(5)ModelReader(模型阅读类)

属性:

Freeze获取或设置一个值,该值指示模型是否可用
DefaultMaterial获取或设置默认材料
Dispatcher获得线程
Directory获得文件夹
TexturePath获取或设置文本路径

方法:

Read(string)从指定路径读取模型
Read(Stream )从指定流读取模型
Dispatch(Action)在线程上调用指定的操作

(6)ObjReader(Wavefront .obj文件阅读器)

属性:

IgnoreErrors获取或设置一个值,指示是否忽略错误
SwitchYZ获取或设置一个值,指示是否切换Y和Z坐标
SkipTransparencyValues获取或设置一个值,指示是否跳过素材文件中的透明度值。
IsSmoothingDefault设置一个值指示平滑是否为默认
Groups获取文件的组。
Materials获取导入的材料文件中的材料
CurrentMaterial获取或设置当前材料
CurrentGroup获取当前组。
Normals获取或设置法线
Points获取或设置点
Reader获取或设置流阅读器
TextureCoordinates获取或设置纹理坐标

方法:

Read(string)从指定的路径读取模型。
Read(Strea)从指定的流读取模型
ReadZ(string)读取GZipStream压缩的OBJ文件
ColorParse(string)解析一个颜色的字符串。
DoubleParse(string)解析一个包含double值的字符串
Split(string)使用空格(输入)分隔指定的字符串作为分隔符
SplitLine(string, out string, out string)在关键字和参数中分割一行
AddGroup(string)添加具有指定名称的组。
EnsureNewMesh()确保创建一个新的网格。
SetSmoothingGroup(string)设置平滑组号。
AddFace(string)添加一个面
AddNormal(string)添加一个法线
AddTexCoord(string)添加纹理坐标
AddVertex(strin)添加顶点
BuildModel()构建模型
GetMaterial(string)获取具有指定名称的材料
LoadMaterialLib(string)加载材料库。
SetMaterial(string)设置当前组的材料

类:Group
属性:

Material设置材料
MeshBuilder获取当前网格的网格构建器。
Name获取或设置组名

方法:

CreateModels()构建模型组

类:MaterialDefinition
属性:

AlphaMap获取或设置Alpha贴图。
Ambient获取或设置环境颜色
AmbientMap获取或设置环境贴图。
BumpMap获取或设置凹凸贴图
Diffuse获取或设置漫反射颜色
DiffuseMap获取或设置漫反射贴图
Dissolved获取或设置不透明度值。
Illumination获取或设置照明。
Name获取或设材料名称
Specular获取或设置镜面颜色
SpecularCoefficient获取或设置镜面系数
SpecularMap获取或设置镜面图。
Material获取或设置材料

方法:

GetMaterial(string)从指定的路径获取材料。
CreateMaterial(string)创建材料。
CreateTextureBrush(string)创建纹理画笔。

(7)OffReader(提供对象文件格式(OFF)阅读器)

属性:

Faces获得平面
Vertices获得顶点

方法:

CreateMesh()从加载文件中创建网格
CreateMeshGeometry3D()从加载的文件创建一个 “MeshGeometry3D”对象。
CreateModel3D()从加载的文件创建一 “Model3DGroup”。
Load(Stream)从指定的流中加载模型
Read(Stream)从指定的流中读取模型。
GetIntValues(string)字符串中解析整数值
GetValues(string)从字符串中解析双精值
RemoveComments(string)从行中删除注释

(8)StLReader(为StereoLithography.StL文件提供导出)

属性:

Header获取文件标题
Materials获取材料
Meshes获取网格

方法:

Read(Stream)从指定的流中读取模型。
ToModel3D()建立模型
ParseLine(string, out string, out string)解析来自指定行的ID和值。
ParseNormal(string)解析一个法线的字符串
ReadFloat(BinaryReader)读取一个浮点数(4字节)
ReadLine(StreamReader, string)从流读取器读取一行。
ReadUInt16(BinaryReader)读取16位无符号整数。
ReadUInt32(BinaryReader)读取32位无符号整数。
TryParseVertex(string, out Point3)从字符串中解析顶点
ReadFacet(StreamReaderr, strin)阅读一个平面。
ReadTriangle(BinaryReader)从二进制STL文件读取三角形。
TryReadAscii(Stream)从指定的流中读取ASCII格式的模型。
TryReadBinary(Stream)从指定的二进制流中读取模型。

(9)StudioReader(3D Studio文件阅读器)

方法:

Read(Stream)从指定的流中读取模型。
ReadChunkId(BinaryReader)读取chunk id
ReadChunkSize(BinaryReader)读取chunk 大小
ReadColor(BinaryReader)读取颜色
ReadData(BinaryReader, int)读取数据
ReadFaceList(BinaryReader)读取平面列表
ReadFaceSets(BinaryReader, int)读取平面设置
ReadMatMap(BinaryReader, int)读取材料贴图
ReadMaterial(BinaryReader, int)读取材料
ReadObject(BinaryReade int)读取object
ReadString(BinaryReader)读取字符串
ReadTexCoords(BinaryReader)读取纹理坐标
ReadTransformation(BinaryReader)读取转换
ReadTriangularMesh(BinaryReader, int)读取三角形网格
ConvertFaceIndices(List, List)转换平面索引
ReadVector(BinaryReader)读一个向量
ReadVertexList(BinaryReader)读取顶点列表。

类:Mesh

Positions顶点
TriangleIndices定义三角形
TextureCoordinates纹理坐标
Material材料
BackMaterial背面材料

方法:

CreateModel()构建模型

类:FaceSet
属性:

Faces获取或设置平面
Name获取或设置材料名称

10.Physics

(1)MarkupExtensions

13.1 GradientExtension(材料的标记扩展)

方法:

ProvideValue(IServiceProvider)返回指定类型的渐变画笔
13.2 ImageBrushExtension(图像画刷的扩展)

方法:

ProvideValue(IServiceProvider)在派生类中实现时,返回一个设置为此标记扩展的目标属性值的对象
13.3 ImageMaterialExtension(图像材料的标记扩展)

属性:

IsEmissive获取或设置一个值,指示此材料是否发光。
Opacity获取或设置不透明度。
UriKind获取或设置URI的种类。

方法:

ProvideValue(IServiceProvider)在派生类中实现时,返回一个设置为此标记扩展的目标属性值的对象
13.4 KeyGestureExtension(关键和鼠标手势的标记扩展)

方法:

ProvideValue(IServiceProvider)提供一个值
13.5 LinearGradientBrushExtension(LinearGradientBrush的标记扩展)

方法:

ProvideValue(IServiceProvider)返回线性渐变画笔
13.6 MaterialExtension(材料的标记扩展)

属性:

Opacity获取或设置不透明度。
SpecularIntensity获得或设置镜面强度
SpecularPower获取或设置镜面光焦度

方法:

ProvideValue(IServiceProvider)在派生类中实现时,返回一个设置为此标记扩展的目标属性值的对象。
13.7 PerspectiveCameraExtension(创建透视相机的标记扩展)

属性:

FieldOfView视野
LookDirection获取或设置相机方向
Position获取或设置位置
UpDirection获取或设置垂直方向

方法:

ProvideValue(IServiceProvider)在派生类中实现时,返回一个设置为此标记扩展的目标属性值的对象。
13.8 TranslateExtension(创建翻译变换的标记扩展。)

属性:

Offset获取或设置偏移量。

方法:

ProvideValue(IServiceProvider)在派生类中实现时,返回一个设置为此标记扩展的目标属性值的对象。

(2)VerletIntegrator(提供一个verlet集成器)

属性:

Accelerations获取或设置加速度
Constraints获取或设置约束。
Damping获取或设置阻尼
InverseMass获取或设置反质量
Iterations获取或设置迭代。
Positions获取或设置Positions。
Positions0获取或设置position0。

方法:

AddConstraint(int, int, double)添加约束
AddFloor(double)
AddSphere(Point3D, double)添加球体
ApplyGravity(Vector3D)应用重力。
CreateConstraintsByMesh(MeshGeometry3D, double)通过网格创建约束
FixPosition(int)修正指定的位置。
Init(MeshGeometry3D)进入指定的网格
Resize(int)调整数组的大小
SetForce(int, Vector3D)设置力
SetInverseMass(double)设置反质量
TimeStep(double)
TransferPositions(MeshGeometry3D)转换位置
Integrate(double)整合
SatisfyConstraints(int)满足约束

类:Constraint
方法:

Satisfy(VerletIntegrator, int)满足约束

类:SphereConstraint
属性:

Center获取或设置中心
Index获取或设置索引
Radius获取或设置半径
RadiusSquared获取或设置半径平方。

方法:

Satisfy(VerletIntegrator, int)满足约束

类:FloorConstraint
属性:

Friction获得或设置摩擦
Index索引

方法:

Satisfy(VerletIntegrator, int)满足约束

类:DistanceConstraint
属性:

Index1索引1
Index2索引2
Iterations获取或设置迭代
RelaxationFactor获取或设置松弛因子
Restlength获取或设置剩余长度

方法:

Satisfy(VerletIntegrator, int)满足约束

11.Resources(资源)

12.SelectionCommands(选择命令)

(1)ModelsSelectedByPointEventArgs

提供PointSelectionCommand的ModelsSelected事件的事件数据。
属性:

Position获取选择的矩形

(2)ModelsSelectedByRectangleEventArgs

提供RectangleSelectionCommand的ModelsSelected事件的事件数据。
属性:

Rectangle获取选择的矩形

(3)ModelsSelectedEventArgs

提供SelectionCommand的ModelsSelected事件的事件数据。
属性:

SelectedModels获取所选模型
AreSortedByDistanceAscending获取一个值,指示所选模型是按照距离升序排列的

(4)PointSelectionCommand

提供一个在拖动鼠标时显示矩形并引发返回矩形中包含的模型的事件的命令
方法:

Started(ManipulationEventArgs)操作开始后发生
Completed(ManipulationEventArgs)操作完成后发生
GetCursor()获取手势的光标

(5)RectangleSelectionCommand

提供一个在拖动鼠标时显示矩形并引发返回矩形中包含的模型的事件的命令
方法:

Started(ManipulationEventArgs)操作开始时触发
Delta(ManipulationEventArgs)操作过程中执行
Completed(ManipulationEventArgs)操作完成时触发
GetCursor()获取光标
HideRectangle()隐藏选择的矩形框
UpdateRectangle()更新矩形框
ShowRectangle()显示矩形框

(6)SelectionCommand(为选择命令提供抽象基类)

属性:

SelectionHitMode获取或设置选择命中模式。
MouseDownPoint获取鼠标点击点(2D屏幕坐标)

方法:

Execute(object)执行命令
CanExecute(object)检查命令是否可以执行
Started(ManipulationEventArgs)操作开始时发生。
Delta(ManipulationEventArgs)在操作期间更改位置时发生
Completed(ManipulationEventArgs)操作完成时发生。
OnModelsSelected(ModelsSelectedEventArgs)触发鼠标选择事件
GetCursor();获取手势的光标。
OnMouseDown(object)当按下鼠标按钮时调用
OnMouseUp(object, MouseButtonEventArgs)当鼠标按钮被释放时调用
OnMouseMove(object, MouseEventArgs)当鼠标移动到控件上时调用。
OnCanExecutedChanged(object, EventArgs)当执行条件改变时调用

(7)SelectionHitMode(选择模式)

属性:

Touch选择触摸选择范围的模型
Inside选择完全在范内的模型

13.ShaderEffects(阴影)

(1)AnaglyphEffect(提供浮雕混合效果)

属性:

LeftInput获取或设置左输入画笔。
Method获取或设置浮雕法。
Offset获取或设置水平偏移
RightInput获取或设置右输入画笔
ShaderMethod获取或设置着色器方法。

方法:

AnaglyphMethodChanged(DependencyObject, DependencyPropertyChangedEventArgs)浮雕方法改变

(2)AnaglyphMethod(浮雕方法)

属性:

True = 0真实浮雕
Gray = 1灰度浮雕
Color = 2全色浮雕
HalfColor = 3半色浮雕
Optimized = 4,优化的浮雕
Dubois = 5Dubois浮雕

(3)InterlacedEffect(提供交错混合效果)

属性:

LeftInput获取或设置左输入画笔。
EvenLeft获取或设置一个值,指示偶数行是否应为左视图或右视图。
Offset获取或设置水平偏移
RightInput获取或设置右输入画笔
ShaderMethod获取或设置着色器方法。

方法:

EvenLeftChanged(DependencyObject, DependencyPropertyChangedEventArgs)浮雕方法改变

14.Themes(主题)

15.Visual3Ds

(1)Composite(综合)

(1.1)BoundingBoxVisual3D(显示指定边框的线框的可视元素)

属性:

BoundingBox获取或设置边界框
Diameter获取或设置直径。
Fill获取或设置边框的画笔。

方法:

OnBoxChanged()更新边框
OnFillChanged()当填充更改时调用。
BoxChanged(DependencyObject, DependencyPropertyChangedEventArgs)当边框尺寸更改时调用
FillChanged(DependencyObject, DependencyPropertyChangedEventArgs)当填充更改时调用。
AddEdge(Point3D, Point3D)增加边缘
(1.2)ClonedVisual3D(一个视觉元素克隆另一个视觉元素的所有子元素)

属性:

Source获取或设置源

方法:

SourceChanged(DependencyObject, DependencyPropertyChangedEventArgs)来源发生改变
OnSourceChanged()来源发生改变
(1.3)CoordinateSystemVisual3D(在X,Y和Z方向显示带有箭头的坐标系的视觉元素)


ht:CoordinateSystemVisual3D/
属性:

ArrowLengths获取或设置箭头长度
XAxisColor获取或设置x轴颜色
YAxisColor获取或设置Y轴颜色
ZAxisColor获取或设置Z轴颜色

方法:

GeometryChanged(DependencyObject, DependencyPropertyChangedEventArgs)几何图形改变
OnGeometryChanged()几何图形改变
(1.4)CuttingPlaneGroup(将切平面运用于视觉元素所有子类)


<h:CuttingPlaneGroup x:Name=“cuttingGroup1”>
<h:CuttingPlaneGroup.CuttingPlanes>
<h:Plane3D Normal=“0,0.5,-1”/>
</h:CuttingPlaneGroup.CuttingPlanes>
<h:SphereVisual3D Radius=“1” Material=“{h:ImageMaterial ‘pack://application:,/Examples/Earth/earth.jpg’}” ThetaDiv=“180” PhiDiv=“90” />
<h:SphereVisual3D Radius=“1.05” Material=“{Binding Clouds}” ThetaDiv=“90” PhiDiv=“45”/>
</h:CuttingPlaneGroup>
属性:

CuttingPlanes获取或设置切平面
IsEnabled获取或设置一个值,指示是否启用切割。
Operation获取或设置切割操作

方法:

OnCompositionTargetRendering(object, RenderingEventArgs)当组合目标渲染事件发生时调用
IsEnabledChanged(DependencyObject, DependencyPropertyChangedEventArgs)处理更改为=“IsEnabled”属性。
OperationChanged(DependencyObject, DependencyPropertyChangedEventArgs)处理更改为Operation属性。
ApplyCuttingGeometries(bool运用切平面
ApplyCuttingPlanesToModel(GeometryModel3D, Transform3D, bool)将切平面应用于模型
Intersect(MeshGeometry3D, GeneralTransform3D, Plane3D, bool)用指定的平面相交指定的源网格几何。
(1.5)Expander3D(将所有内容相对于指定的来源进行转换的视觉元素。)

属性:

Expansion获取或设置扩展因子
ExpandOrigin获取或设置扩展的来源

方法:

ExpandTo(double value, double animationTime)扩展到指定的值
ExpansionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)扩展改变
OnExpansionChanged()扩展
Expand(GeometryModel3D model, Transform3D transformation)扩展
(1.6)Exploder3D(一个视觉元素,将所有的内容元素都扩张)

属性:

IsExploding获取或设置一个值,指示此实例是否正在扩大

方法:

IsExplodingChanged(DependencyObject, DependencyPropertyChangedEventArgs)当扩张状态改变时调用。
OnIsExplodingChanged()当扩张状态改变时发生
(1.7)FileModelVisual3D(显示从文件加载的模型的可视元素)


<ht:FileModelVisual3D x:Name=“model1” Source=“Examples/Contour/vwbus.3ds”/>
属性:

ModelLoaded模型加载时发生。
DefaultMaterial获取或设置默认材料
Source获取或设置源文件名。

方法:

SourceChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)源文件改变
OnModelLoaded()模型加载时发生。
SourceChanged()当源或默认材料更改时调用。
13.9 LightVisual3D(显示指定光源的视觉元素。)

属性:

Light获取或设置光。

方法:

LightChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)灯光改变
OnLightChanged()灯光改变时发生。
13.10 MeshNormalsVisual3D(显示指定网格几何的法线的视觉元素)

属性:

Color获取或设置法线的颜色。
Diameter获取或设置法线箭头的直径
Mesh获取或设置网格

方法:

MeshChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)网格改变
OnMeshChanged()更新视图
13.11 MeshVisual3D(显示Mesh3D网格的视觉元素)

属性:

EdgeDiameter获取或设置图形直径
EdgeMaterial获取或设置图形材料
FaceBackMaterial获取或设置背面材料
FaceMaterial获取或设置正面材料
Mesh获取或设置网格
SharedVertices获取或设置一个值,指示是否共享顶点(平滑阴影
ShrinkFactor获取或设置收缩因子
TriangleIndexToFaceIndex获取或设置从三角形索引到面部索引的映射。
VertexMaterial获取或设置顶点材质。
VertexRadius获取或设置顶点半径。
VertexResolution获取或设置顶点分辨率(细分数)。

方法:

MeshChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)网格改变
UpdateVisuals()更新视图
13.12 PanoramaCube3D(显示全景立方体或天空盒的视觉元素)
<ht:PanoramaCube3D Source=“Examples\PanoramaDemo\Models\GrandHotel”/>

属性:
AutoCenter获取或设置一个值,指示[自动中心]
ShowSeams获取或设置一个值,指示是否显示接缝。
Size获取或设置多维立方体的大小。
Source获取或设置全景/天空盒目录或文件前缀

方法:

SourceChanged(DependencyObject, DependencyPropertyChangedEventArgs)源文件改变
GeometryChanged(DependencyObject, DependencyPropertyChangedEventArgs)几何图形改变
AddCubeSide(Vector3D, Vector3D, string)添加立方体
UpdateModel()更新模型
13.13 RenderingModelVisual3D(为ModelVisual3D对象提供一个抽象基类,用于监听CompositionTarget.Rendering事件)

方法:

SubscribeToRenderingEvent()订阅CompositionTarget.Rendering事件。
UnsubscribeRenderingEvent()取消订阅CompositionTarget.Rendering事件
OnCompositionTargetRendering(object, RenderingEventArgs)处理CompositionTarget.Rendering事件。
13.14 SortingVisual3D(指定SortingVisual3D的排序方法)

属性:

CheckForOpaqueVisuals获取或设置一个值,指示是否检查是否存在不透明的子视觉效果。
IsSorting获取或设置一个值,指示此实例是否正在排序。 当视觉从Viewport3D中删除时,此属性应设置为false以取消订阅呈现事件。
Method获取或设置排序方法
SortingFrequency获取或设置排序频率(Hz)

方法:

OnCompositionTargetRendering(object sender, RenderingEventArgs e)组合target_呈现
IsSortingChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)排序更改
GetCameraDistance(Visual3D c, Point3D cameraPos, Transform3D transform)获取指定视觉距离相机的距离。
IsVisualTransparent(Visual3D visual)确定指定的视觉效果是否透明
OnIsSortingChanged()排序更改
SortChildren()排序内容
13.15 VectorFieldVisual3D(显示矢量场的视觉元素)

属性:

Diameter获取或设置直径
Directions获取或设置方向。
Fill获取或设置填充
HeadLength获取或设置头的长度
Positions获取或设置位置
ThetaDiv获取或设置箭头的分割数

方法:

UpdateModel()更新模型
CreateBodyTransform(Point3D, Vector3D)创造变形
CreateHeadTransform(Point3D, Vector3D)创建标题变换
CreateGeometry()创建几何
13.16 ViewCubeVisual3D(显示多维数据集的立方体)

属性:

BackText获取或设置背面文本
BottomText获取或设置底部文本。
Center获取或设置中心
FrontText获取或设置前面文本
LeftText获取或设置左面文本
ModelUpDirection获取或设置模型垂直方向
RightText获取或设置右面文本
Size获取或设置大小
TopText获取或设置顶部文本
IsEnabled获取或设置视图立方体是否可用
Viewport取或设置由视图立方体控制的视口

方法:

OnClicked(Vector3D, Vector3D)触发点击事件
VisualModelChanged(DependencyObject, DependencyPropertyChangedEventArgs)VisualModel属性已更改
UpdateVisuals()更新视图
AddEdges()创建几何
AddEdge(Point3D, double, double, double, Vector3D)添加边
AddCorners()添加角
EdgesMouseLeaves(object, MouseEventArg)鼠标离开
EdggesMouseEnters(object, MouseEventArgs)鼠标进入
CornersMouseLeave(object, MouseEventArgs)鼠标离开
CornersMouseEnters(object, MouseEventArgs)鼠标进入
AddCubeFace(Vector3D, Vector3D, Brush, string)添加立方体面
FaceMouseLeftButtonDown(objec, MouseButtonEventArgs)左键按下

类:ClickedEventArgs
属性:

LookDirection设置摄像机方向
UpDirection设置相机垂直方向

右下角的视图立方体,默认为显示;
隐藏:
<h:HelixViewport3D ShowViewCube=“False”>

<h:HelixViewport3D>

14 LightSetups(灯光设置)

14.1 DefaultLights(一个视觉元素,包含一个包含4个定向灯的光模型)


<helix:DefaultLights ShowLights=“True”/>
方法:

AddLights(Model3DGroup)添加灯到元素中
(1.2)DirectionalHeadLight(代表定向头灯)
(1.3)GenericHeadLight(为在相机空间中操作的灯提供基础类)

属性:

Brightness获取或设置大灯的亮度。 如果设置,此属性将覆盖 “Color”属性。
Color获取或设置大灯的颜色。 如果 “亮度”设置为 NaN </ c>,则使用此属性。
Position获取或设置大灯的位置(在相机空间中)

方法:

OnVisualParentChanged(DependencyObject)当3-D可视对象的父级更改时调用。
AddLights(Model3DGroup)将灯添加到元素。
Update(DependencyObject, DependencyPropertyChangedEventArgs )更新灯光
CameraChanged(object, EventArgs)处理相机改变
Update()更新此实例。
(1.4)LightSetup(光模型的抽象基类。)

属性:

ShowLights获取或设置一个值,指示是否显示灯视觉效果

方法:

SetupChanged(DependencyObject, DependencyPropertyChangedEventArgs)设置更改
AddLights(Model3DGroup);将灯添加到元素。
OnSetupChanged()处理灯光设置的变化
OnShowLightsChanged()显示灯改变时调用
ShowLightsChanged(DependencyObject, DependencyPropertyChangedEventArgs)显示灯改变
(1.5)SpotHeadLight(点光源)
(1.6)SunLight(自然光)


<helix:SunLight Altitude=“{Binding Altitude}” Azimuth=“{Binding Azimuth}” Brightness=“{Binding Brightness}” Ambient=“{Binding Ambient}” ShowLights=“True”/>
属性:

Altitude获取或设置高度角(度)
Ambient获取或设置环境亮度。
Azimuth获取或设置方位角(度)
Brightness获取或设置亮度

方法:

AddLights(Model3DGroup)将灯添加到元素。
(1.7)ThreePointLights(包含三点光源设置的视觉元素)


<helix:ThreePointLights ShowLights=“True”/>
属性:

Distance获取或设置距离
FillLightAngle获取或设置填充光角度。
FillLightSideAngle获取或设置填充光侧角
FrontDirection获取或设置前方向
KeyLightAngle获取或设置关键光角度。
KeyLightBrightness获取或设置关键光亮度。
KeyLightSideAngle获取或设置关键灯侧角
KeyToFillLightRatio获取或设置键以填充光比
KeyToRimLightRatio获取或设置边框光比的键。
RimLightAngle获取或设置边框光角度
Target获取或设置目标
UpDirection获取或设置方向。

方法:

AddLights(Model3DGroup)将灯添加到元素。

15 Manipulators

(2.1)BindableRotateManipulator(表示包含可围绕轴旋转的操纵器的视觉元素)

属性:

Axis获取或设置旋转轴
Diameter获取或设置直径。
InnerDiameter获取或设置内径
Length获取或设置圆柱体的长度。
Pivot获取或设置操纵器的枢轴点
InternalPivotPoint获取或设置内部枢轴点。

方法:

UpdateGeometry()更新几何图形。
OnMouseDown(MouseButtonEventArgs)鼠标按下
OnMouseMove(MouseEventArgs)鼠标移动
PositionChanged(DependencyPropertyChangedEventArgs)位置改变
ValueChanged(DependencyPropertyChangedEventArgs)根据旋转值的变化更新目标变换
(2.2)BindableTranslateManipulator(表示一个可视元素,其中包含一个可以沿着轴平移的操纵器。)


<ht:TranslateManipulator Color=“Black” Position=“-8,0,0” Offset=“0,0,0.5” Length=“1” Value=“{Binding Height, ElementName=box1, Converter={StaticResource Multiplier}}” Direction=“0,0,1”/>
属性:

Diameter获取或设置操纵器箭头的直径。
Length获取或设置操纵器箭头的长度。
Direction获取或设置变换方向

方法:

UpdateGeometry()更新几何图形。
OnMouseDown(MouseButtonEventArgs)鼠标按下
OnMouseMove(MouseEventArgs)鼠标移动
PositionChanged(DependencyPropertyChangedEventArgs)位置改变
ValueChanged(DependencyPropertyChangedEventArgs根据旋转值的变化更新目标变换
GetNearestPoint(Point, Point3D, Vector3D)获得平移轴上最近的点
(2.3)CombinedManipulator(表示显示平移和旋转操纵器的视觉元素)

属性:

CanRotateY获取或设置一个值,指示此实例是否可以旋转Y
CanRotateX获取或设置一个值,指示此实例是否可以旋转X.
CanRotateZ获取或设置一个值,指示此实例是否可以旋转Z
CanTranslateX获取或设置一个值,指示此实例是否可以平移X.
CanTranslateY获取或设置一个值,指示此实例是否可以平移Y.
CanTranslateZ获取或设置一个值,指示此实例是否可以平移Z.
Diameter获取或设置直径
Offset获取或设置视觉的偏移
Pivot获取或设置操纵器的枢轴点
Position获取或设置操纵器的位置。
TargetTransform获取或设置目标变换

方法:

Bind(ModelVisual3D )将此操纵器绑定到给定的Visual3D。
UnBind()释放此操纵器的绑定
UpdateChildren()更新内容的视觉效果
ChildrenChanged(DependencyObject, DependencyPropertyChangedEventArgs)处理与内容视觉相关的属性的更改
(2.4)Manipulator(为操纵者提供抽象基类)

属性:

Color获取或设置操纵器的颜色。
Material获取或设置操纵器的材料
BackMaterial获取或设置操纵器背面的材料
Offset获取或设置视觉的偏移(该矢量被添加到位置点)
Position获取或设置操纵器的位置。
TargetTransform获取或设置目标变换。
Value获取或设置操纵器值。
Camera获取或设置相机。
HitPlaneNormal获取或设置命中平面法线
Model获取或设置模型。
ParentViewport获取或设置父视口。

方法:

Bind(ModelVisual3D)将此操纵器绑定到给定的Visual3D。。
UnBind()释放该操纵器的绑定。
UpdateGeometry(DependencyObject, DependencyPropertyChangedEventArgs)当与几何图形相关的属性更改时调用
GetHitPlanePoint(Point, Point3, Vector3D)在命中平面上投射点
UpdateGeometry();更新几何图形
OnMouseDown(MouseButtonEventArgs)鼠标按下
OnMouseUp(MouseButtonEventArgs)鼠标弹起
PositionChanged(DependencyPropertyChangedEventArgs)位置改变
ValueChanged(DependencyPropertyChangedEventArgs)值改变
ToLocal(Point3D)坐标转换
ToWorld(Point3D)坐标转换(球到面)
ToWorld(Vector3D)坐标转换面到球)
ColorChanged()颜色改变
(2.5)RotateManipulator(表示包含可围绕轴旋转的操纵器的视觉元素)

属性:

Axis获取或设置旋转轴
Diameter获取或设置直径。
InnerDiameter获取或设置内径
Length获取或设置圆柱体的长度。
Pivot获取或设置操纵器的枢轴点

方法:

UpdateGeometry()更新几何图形。
OnMouseDown(MouseButtonEventArgs)鼠标按下
OnMouseMove(MouseEventArgs)鼠标移动
(2.6)TranslateManipulator(表示一个可视元素,其中包含一个可以沿着轴平移的操纵器。)

属性:

Diameter获取或设置操纵器箭头的直径。
Length获取或设置操纵器箭头的长度。
Direction获取或设置变换方向

方法:

UpdateGeometry()更新几何图形。
OnMouseDown(MouseButtonEventArgs)鼠标按下
OnMouseMove(MouseEventArgs)鼠标移动
GetNearestPoint(Point, Point3D, Vector3D)获得平移轴上最近的点。

16 MeshVisuals

(3.1)ArrowVisual3D(显示箭头的视觉元素。)


<helix:ArrowVisual3D Point1=“5 0 -0.45” Point2=“5 0 0.45” Diameter=“0.2” Fill=“Red” Visible=“{Binding IsChecked, ElementName=ArrowVisible}”/>
属性:

Diameter获取或设置直径。
Direction获取或设置方向
HeadLength获取或设置头部的长度(相对于箭头圆柱体的直径)
Origin获取或设置原点。
Point1获取或设置箭头的起始点。
Point2获取或设置箭头的终点。
ThetaDiv获取或设置箭头周围的分割数。

方法:

Tessellate()做细分并返回 “MeshGeometry3D”
(3.2)BoxVisual3D(一个呈现框的视觉元素。)


<h:BoxVisual3D Width=“20” Height=“20” Length=“20” Center=“0,0,24” Fill=“Yellow”/>
属性:

Center获取或设置框的中心。
BottomFace获取或设置一个值,指示是否包括底面。
Height获取或设置高度(沿局部z轴)
Length获取或设置框的长度(沿着局部x轴)。
TopFace获取或设置一个值,指示是否包括顶面
Width获取或设置框的宽度(沿着本地y轴)

方法:

Tessellate()做细分并返回 “MeshGeometry3D”
(3.3)CubeVisual3D(显示立方体的视觉元素)

属性:
Center获取或设置立方体中心。
SideLength获取或设置多边形边的长度

方法:

Tessellate()做细分并返回 “MeshGeometry3D”
(3.4)EllipsoidVisual3D(显示轴对齐椭圆体的视觉元素)


<helix:EllipsoidVisual3D Center=“2 0 0” Fill=“Green” RadiusX=“0.45” RadiusY=“0.3” RadiusZ=“0.45” Visible=“{Binding IsChecked, ElementName=EllipsoidVisible}”/>

属性:

Center获取或设置椭圆的中心(这将设置元素的变换)
PhiDiv获取或设置phi方向的分割数(从“顶”到“底”)。
RadiusX获取或设置椭球的X赤道半径
RadiusY获取或设置椭球的Y赤道半径
RadiusZ获取或设置椭球的Z赤道半径
ThetaDiv获取或设置θ方向(围绕球体)的分割数。

方法:

Tessellate()做细分并返回 “MeshGeometry3D”
(3.5)ExtrudedVisual3D(沿着路径挤压断面的视觉元素。)

属性:

Diameters沿路径获取或设置直径
Angles沿路径获取或设置直径。
IsPathClosed获取或设置一个值,指示路径是否关闭
IsSectionClosed获取或设置一个值,指示该部分是否关闭。
Path获取或设置路径
Section获取或设置部分。
SectionXAxis
TextureCoordinates沿着路径获取或设置纹理坐标(仅X)

方法:

Tessellate()做细分并返回 “MeshGeometry3D”
(3.6)GridLinesVisual3D(显示一组网格线的视觉元素。)


<helix:GridLinesVisual3D Center=“6 0 -0.5” Fill=“Gray” Visible=“{Binding IsChecked, ElementName=GridLinesVisible}”/>
属性:

Center获取或设置网格的中心
Length获取或设置网格区域的长度。
LengthDirection获取或设置网格的长度方向。
MajorDistance获取或设置主网格线之间的距离
MinorDistance获取或设置次网格线之间的距离。
Normal获取或设置网格平面的法向量
Thickness获取或设置网格线的宽度。
Width获取或设置网格区域的宽度(垂直于长度方向)。

方法:

Tessellate()做细分并返回 “MeshGeometry3D”
IsMultipleOf(double, double)确定y是否为d的倍数。
AddLineX(MeshBuilder, double, double, double, double)加线X
AddLineY(MeshBuilde, double, double, double, double)加线Y
GetPoint(double, double)在平面得到一点。
(3.7)HelixVisual3D(显示螺旋的视觉元素)


<helix:HelixVisual3D Radius=“2” Diameter=“0.5” Turns=“3” Length=“30” Fill=“{StaticResource RainbowBrush}”/>
<helix:HelixVisual3D Radius=“2” Diameter=“0.5” Turns=“3” Length=“30” Phase=“180” Fill=“{StaticResource RainbowBrush}”/>
属性:

Origin获取或设置原点
Length获取或设置长度
Diameter获取或设置直径。
Phase获取或设置相位
Radius获取或设置半径
Turns获取或设置圈数。

方法:

Evaluate(double, double, out Point)计算表面。
(3.8)MeshElement3D(表示包含一个GeometryModel3D和前后材质的元素的基类。)

属性:

BackMaterial获得或设置背部材料
Fill获取或设置填充画笔。 此画笔将用于“材质”和“背面材质”
Material获取或设置材料
Visible获取或设置一个值,指示此 “MeshElement3D”是否可见。
Model获取几何模型

方法:

BeginEdit()开始对对象进行编辑
CancelEdit()取消最后一次编辑
EndEdit()结束编辑
UpdateModel()更新模型
VisibleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)可见标志已更改
GeometryChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)几何图形改变
MaterialChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)Material或BackMaterial属性已更改。
OnFillChanged()填充属性已更改。
OnGeometryChanged()处理几何或可见状态的变化
OnMaterialChanged()处理材料/背面材料的变化
Tessellate();做细分并返回 “MeshGeometry3D”。
FillChanged(DependencyObject, DependencyPropertyChangedEventArgs)当填充更改时调用
(3.9)MeshGeometryVisual3D(可以绑定到MeshGeometry3D的视觉元素。)

属性:

MeshGeometry获取或设置 “MeshGeometry3D”定义的形状。

方法:

Tessellate()做细分并返回 “MeshGeometry3D”。
(3.10)ParametricSurface3D(为矩形网格上评估的参数曲面提供基类。)

属性:

MeshSizeU以u方向获取或设置网格尺寸。
MeshSizeV以v方向获取或设置网格尺寸。

方法:

Tessellate()做细分并返回 “MeshGeometry3D”。
Evaluate(double u, double v, out Point textureCoord);在指定的u,v参数下评估曲面
AddTriangle(MeshGeometry3D mesh, int i1, int i2, int i3)添加三角形。
IsDefined(Point3D point)确定是否定义了指定的点。
(3.11)ParticleSystem(在WPF的限制内渲染一个简单的粒子系统)


<h:ParticleSystem Texture=“{StaticResource SmokeBrush}” Position=“{Binding TopPosition, ElementName=chimney1}” AliveParticles=“1000” Acceleration=“10”/>
属性:

AliveParticles获取或设置活动粒子的数量。
Position获取或设置位置。
StartDirection获取或设置起始方向
Acceleration获取或设置加速度。
AccelerationDirection获取或设置加速度方向
AccelerationSpreading获取或设置加速度展开角度。
StartRadius获取或设置起始半径
StartSize获取或设置起始大小
StartVelocity获取或设置起始速度。
VelocityDamping获取或设置速度阻尼因子。
StartVelocityRandomness获取或设置起始速度随机性
StartSpreading获取或设置开始扩展。
LifeTime获取或设定生命周期
AngularVelocity获取或设置角速度。
SizeRate获取或设置大小率。
FadeOutTime获取或设置淡出时间。
EmitRate
Texture获取或设置纹理。

方法:

TextureChanged()纹理更改时更新材质。
OnVisualParentChanged(DependencyObject oldParent)当3-D可视对象的父级更改时调用
EmitOne()发出一个粒子
Update(double time)更新系统
AdjustListLength(IList list, int targetLength)调整指定列表的长度。
CreateRandomVector(Vector3D z, double spreading)创建一个随机向量
OnCompositionTargetRendering(object sender, RenderingEventArgs eventArgs)处理CompositionTarget.Rendering事件

类:Particle

(3.12)PieSliceVisual3D(一个视觉元素,显示由中心,法线,向上向量,内半径,外半径,起始和终止角度定义的平坦饼状切片)


<helix:PieSliceVisual3D Center=“-1 0 0” OuterRadius=“0.45” InnerRadius=“0.1” Fill=“Turquoise” Visible=“{Binding IsChecked, ElementName=PieSliceVisible}”/>
属性:

Center获取或设置中心。
EndAngle获取或设置结束角度。
InnerRadius获取或设置内半径。
Normal获取或设置法线
OuterRadius获取或设置外半径
StartAngle获取或设置开始角度。
ThetaDiv获取或设置切片的角分割数
UpVector获取或设置向量

方法:

Tessellate()做细分并返回 “MeshGeometry3D”
(3.13)PipeVisual3D(显示两点之间管道的视觉元素)


<helix:PipeVisual3D Point1=“-2 0 -0.45” Point2=“-2 0 0.45” Diameter=“0.9” InnerDiameter=“0.7” Fill=“Bisque” Visible=“{Binding IsChecked, ElementName=PipeVisible}”/>
属性:

Diameter获取或设置(外)直径。
InnerDiameter获取或设置内径
Point1获取或设置开始点
Point2获取或设置结束点。
ThetaDiv获取或设置切片的角分割数

方法:

Tessellate()做细分并返回 “MeshGeometry3D”
(3.14)QuadVisual3D(显示四边形多边形的视觉元素)


<helix:QuadVisual3D Point1=“-3 -0.45 -0.45” Point2=“-3 0.45 -0.45” Point3=“-3 0.45 0.45” Point4=“-3 -0.45 0.45” Fill=“Gray” Visible=“{Binding IsChecked, ElementName=QuadVisible}”/>
属性:

Point1获取或设置第一个点
Point2获取或设置第二个点
Point3获取或设置第三个点
Point4获取或设置第四个点

方法:

Tessellate()做细分并返回 “MeshGeometry3D”
(3.15)RectangleVisual3D(一个可视元素,显示由原点,法线,长度和宽度定义的3D矩形。)


<ht:RectangleVisual3D Width=“0.1” Length=“60” Origin=“0.1,30,0.01” LengthDirection=“0,1,0” Normal=“0,0,1” Material=“{ht:Material Yellow}”/>
属性:

DivLength获取或设置“长度”方向上的分割数。
DivWidth获取或设置“宽度”方向上的分割数
Length获取或设置长度
LengthDirection获取或设置长度方向。
Normal获取或设置平面的法向量。
Origin获取或设置平面的中心点
Width获取或设置宽度

方法:

Tessellate()做细分并返回 “MeshGeometry3D”
CoerceDivValue(DependencyObject, object)强化分数值
(3.16)SphereVisual3D(显示由中心和半径定义的球体的视觉元素)


<t:SphereVisual3D Radius=“1” Material=“{t:ImageMaterial ‘pack://application:,/Examples/Earth/earth.jpg’}” ThetaDiv=“180” PhiDiv=“90” />
属性:

Center获取或设置球体的中心。
PhiDiv获取或设置phi方向的分割数(从“顶”到“底”)
Radius获取或设置球体的半径。
ThetaDiv取或设置θ方向(围绕球体)的分割数

方法:

Tessellate()做细分并返回 “MeshGeometry3D”
(3.17)TorusVisual3D(显示由两个直径(圆环和它的管)定义的环面的视觉元素。)


<ht:TorusVisual3D x:Name=“torus1” TorusDiameter=“{Binding Value, ElementName=torusDiameterSlider}” TubeDiameter=“{Binding Value, ElementName=tubeDiameterSlider}”
ThetaDiv=“{Binding Value, ElementName=thetaDivSlider}” PhiDiv=“{Binding Value, ElementName=phiDivSlider}” Fill=“Red” />
属性:

TorusDiameter获取或设置(环面)直径。
PhiDiv获取或设置phi方向的分割数(从“顶”到“底”)
TubeDiameter获取或设定管径。
ThetaDiv取或设置θ方向(围绕球体)的分割数

方法:

Tessellate()做细分并返回 “MeshGeometry3D”
(3.18)TruncatedConeVisual3D(显示由原点,高度,法线,基底和顶部半径定义的截锥的视觉元素)


<h:TruncatedConeVisual3D BaseRadius=“5” TopRadius=“5” BaseCap=“True” Origin=“-20,-20,-10” Height=“20” Fill=“Green”/>
属性:

BaseCap获取或设置一个值,指示是否包括基本封顶
BaseRadius获取或设置基准半径。
Height获取或设置高度
Normal获取或设置法线
Origin获取或设置原点
ThetaDiv取或设置θ方向(围绕球体)的分割数
TopCap获取或设置一个值,指示是否包括顶帽
TopRadius获取或设置顶部半径

方法:

Tessellate()做细分并返回 “MeshGeometry3D”
(3.19)TubeVisual3D(沿着指定路径显示管的视觉元素)


<helix:TubeVisual3D Path=“-7 0 -0.45 -7 0.1 0 -7 0 0.45” Diameter=“0.1” Fill=“HotPink” Visible=“{Binding IsChecked, ElementName=TubeVisible}”/>
属性:

Diameter获取或设置管的直径
ThetaDiv获取或设置管子周围的分隔数
AddCaps获取或设置创建Caps指示符

方法:

Tessellate()做细分并返回 “MeshGeometry3D”
SectionChanged(DependencyObject, DependencyPropertyChangedEventArgs)该部分已更改。
OnSectionChanged更新该部分。

(4)ScreenSpaceVisuals

(4.1)BillboardVisual3D


<ht:BillboardTextVisual3D Position=“5,0,0” Text=“5,0,0” DepthOffset=“0.01”/>

<ht:BillboardVisual3D Position=“6,10,3” Width=“40” Height=“40” Material=“{ht:ImageMaterial Examples/Billboard/roadsign.png, IsEmissive=true}”/>
属性:

DepthOffset获取或设置深度偏移。
Height获取或设置高度。
HorizontalAlignment获取或设置水平对齐。
IsRendering获取或设置一个值,指示是否呈现此实例。
Material获取或设置材料。
Position获取或设置Billboard的位置(中心)。
VerticalAlignment获取或设置垂直对齐。
Width获取或设置宽度。
Mesh获取或设置网格。
Model获取或设置模型。

方法:

OnMaterialChanged()材料改变。
GeometryChanged(DependencyObject , DependencyPropertyChangedEventArgs )几何改变。
OnCompositionTargetRendering(object , RenderingEventArgs )组合target_呈现。
OnVisualParentChanged(DependencyObject)当3-D可视对象的父级更改时调用
UpdateGeometry()更新几何图形。
UpdateTransforms()更新转换。
MaterialChanged(DependencyObject , DependencyPropertyChangedEventArgs )颜色改变
OnGeometryChanged()几何图形更改时调用。
(4.2)BoundingBoxWireFrameVisual3D

属性:

BoundingBox获取或设置边界框

方法:

OnBoxChanged()更新边界框。
BoxChanged(DependencyObject , DependencyPropertyChangedEventArgs )当边界框更改时调用。
(4.3)LinesVisual3D


<h:LinesVisual3D Points=“{Binding LinePoints}” Color=“Blue”/>
属性:

Thickness获取或设置线条的宽度。

方法:

UpdateGeometry()更新几何。
UpdateTransforms()更新转换。
(4.4)PointsVisual3D


<h:PointsVisual3D Points=“{Binding Points}” Color=“Red” Size=“6” />
属性:

Size获取或设置点的大小。

方法:

UpdateGeometry()更新几何图形。
UpdateTransforms()更新转换。
(4.5)ScreenSpaceVisual3D

属性:

Color获取或设置颜色。
DepthOffset获取或设置深度偏移。
IsRendering获取或设置一个值,指示是否呈现此实例。
Points获取或设置点集合。
Clipping获取或设置剪切对象。
Mesh获取或设置网格。
Model获取或设置模型。

方法:

GeometryChanged(object , DependencyPropertyChangedEventArgs )几何属性更改时调用。
PointsChanged(DependencyObject , DependencyPropertyChangedEventArgs )当点变化时调用。
OnCompositionTargetRendering(object , RenderingEventArgs )组合target_呈现。
OnVisualParentChanged(DependencyObject )当3-D可视对象的父级更改时调用。
UpdateGeometry();更新几何图形。
UpdateTransforms();更新转换。
ColorChanged(object , DependencyPropertyChangedEventArgs )当颜色变化时更改材料。
HandlePointsChanged(object , EventArgs )处 “Points”集合中的更改。
ColorChanged()当颜色变化时更改材料
UpdateClipping()更新剪辑对象。

17 Terrain(地形)

<t:TerrainVisual3D Source=“Examples/Terrain/Models/crater_0513.btz”/>

(5.1)Textures
MapTexture

属性:

Bottom获取或设置底部。
Left获取或设置左边。
Right获取或设置右边。
Top获取或设置顶部。

方法:

Calculate(TerrainModel , MeshGeometry3D )计算指定模型的纹理。
SlopeDirectionTexture

属性:

Brush获取或设置画笔。

方法:

Calculate(TerrainModel , MeshGeometry3D )计算指定模型的纹理。
SlopeTexture

属性:

Brush获取或设置画笔。

方法:

Calculate(TerrainModel , MeshGeometry3D )计算指定模型的纹理。
TerrainTexture

属性:

Material获取或设置材料。
TextureCoordinates获取或设置纹理坐标。

方法:

Calculate(TerrainModel , MeshGeometry3D )计算指定模型的纹理。
(5.2)TerrainModel

属性:

Bottom获取或设置底部。
Data获取或设置数据。
Height获取或设置高度。
Left获取或设置左边。
MaximumZ获取或设置最大Z。
MinimumZ获取或设置最小Z。
Offset获取或设置偏移量。
Right获取或设置右边。
Texture获取或设置纹理。
Top获取或设置顶部。
Width获取或设置宽度。

方法:

CreateModel(int )创建MAP的3D模型。
Load(string )加载指定的文件。
ReadTerrainFile(Stream )读取.bt(二进制MAP)文件。
ReadTerrainFile(string )读取指定的.bt MAP文件。
ReadZippedFile(string )阅读一个gzip压缩的.bt文件…
(5.3)TerrainVisual3D

属性:

Source获取或设置源map文件。

方法:

SourceChanged(DependencyObject, DependencyPropertyChangedEventArgs )来源改变。
UpdateModel()更新模型。

(6)Text

(6.1)BillboardTextGroupVisual3D(包含文本billboards集合的视觉元素)

属性:

Background获取或设置背景
BorderBrush获取或设置边框画笔。
IsEnabled获取或设置一个值,指示是否启用此对象的更新
PinBrush获取或设置针刷。
PinWidth获取或设置“pin”的宽度。
BorderThickness获取或设置边框宽度
FontFamily获取或设置字体系列。
FontSize获取或设置字体的大小。
FontWeight获取或设置字体重量。
Foreground前景色
HeightFactor获取或设置高度因子。
IsRendering获取或设置一个值,指示是否呈现此实例
Items获取或设置项目
Padding获取或设置填充。
Offset设置偏移量

方法:

OnCompositionTargetRendering(object, RenderingEventArgs)处理CompositionTarget.Rendering事件。
OnVisualParentChanged(DependencyObject)当3-D可视对象的父级更改时调用。
UpdateGeometry()更新几何图形
UpdateTransforms()更新转换
VisualChanged(DependencyObject, DependencyPropertyChangedEventArgs)视觉外观发生变化
CreateElement(string)创建指定文本的元素
VisualChanged()更新视觉外观(纹理和几何)
(6.2)BillboardTextItem(代表Billboard文字项目)

属性:

DepthOffset获取或设置深度偏移。
WorldDepthOffset获取或设置球体坐标中的深度偏移量
(6.3)BillboardTextVisual3D(定义材料的类型)

属性:

Background获取或设置背景
BorderBrush获取或设置边框画笔。
BorderThickness获取或设置边框宽度
FontFamily获取或设置字体系列。
FontSize获取或设置字体的大小。
FontWeight获取或设置字体重量。
Foreground前景色
HeightFactor获取或设置高度因子。
MaterialType获取或设置材料类型
Padding获取或设置填充。
Text获取或设置文本

方法:

VisualChanged(DependencyObject, DependencyPropertyChangedEventArgs)视觉外观发生变化
VisualChanged()当视觉外观改变时更新文本块
(6.4)SpatialTextItem(表示空间文本项)

属性:

TextDirection获取或设置文本方向
UpDirection获取或设置垂直方向。
(6.5)TextGroupVisual3D(提供一个显示文本集合的视觉元素)

属性:

Background获取或设置背景画笔。
BorderBrush获取或设置边框画笔
BorderThickness获取或设置边框宽度
FontFamily获取或设置字体系列。
FontSize获取或设置字体的大小(如果未设置,则使用Height属性。
FontWeight获取或设置字体重量
Foreground前景
Height获取或设置文本的高度。
IsDoubleSided获取或设置一个值,指示此文本视觉是否是双面的
IsFlipped获取或设置一个值,指示文本是否应翻转(水平镜像)
Items获取或设置项目
Padding获取或设置填充

方法:

VisualChanged()视觉改变
VisualChanged(DependencyObject, DependencyPropertyChangedEventArgs)视觉改变
CreateElement(string)为指定的文本创建一个元素TextBlock或 “FrameworkElement”包装 “TextBlock”。
OptimizeSize(UIElement, double, double)优化面板的大小。
CreateTextMaterial(IEnumerable,Func<string, FrameworkElement>, Brus, out Dictionary<string, FrameworkElement>, out Dictionary<FrameworkElement, Rect>)创建文本材料
(6.6)TextItem

属性:

HorizontalAlignment获取或设置水平对齐
Position获取或设置位置。
Text获取或设置文本
VerticalAlignment获取或设置垂直对齐
(6.7)TextVisual3D


<h:TextVisual3D Foreground=“Black” Background=“LightBlue” BorderBrush=“DarkBlue” BorderThickness=“1” Height=“2” Padding=“2” FontFamily=“Arial” FontWeight=“Normal” FontSize=“48” IsDoubleSided=“True” Position=“2,1,0” UpDirection=“0,0,1” TextDirection=“0,1,0” HorizontalAlignment=“Center” VerticalAlignment=“Center” Text=“TextVisual3D”> </h:TextVisual3D>
属性:

Background获取或设置背景画笔。
BorderBrush获取或设置边框画笔
BorderThickness获取或设置边框宽度
FontFamily获取或设置字体系列。
FontSize获取或设置字体的大小(如果未设置,则使用Height属性。
FontWeight获取或设置字体重量
Foreground前景
Height获取或设置文本的高度。
HorizontalAlignment获取或设置水平对齐
IsDoubleSided获取或设置一个值,指示此文本视觉是否是双面的
Padding获取或设置填充
Position获取或设置文本的位置
Text获取或设置文本
TextDirection获取或设置文本方向
UpDirection获取或设置文本的垂直方向。
VerticalAlignment获取或设置垂直对齐。

方法:

VisualChanged()视觉改变
VisualChanged(DependencyObject, DependencyPropertyChangedEventArgs)视觉改变
### 回答1: Helix Toolkit是一种用于开发3D模型的开源工具包。该工具包可以通过设置属性、添加光照、材料等来创建3D模型,并可与其他.NET库一起使用。Helix Toolkit还支持各种文件格式,如.obj和.stl等,使用户可以加载和导出模型。 在Helix Toolkit文档中,可以找到各种关于该工具包的信息,例如如何安装和使用,如何创建3D模型、如何设置摄像机位置和镜头方向等。此外,文档还提供了脚本和样例代码,让用户可以更好地理解这个工具包的使用和实现。 值得一提的是,Helix Toolkit还提供了一些扩展功能,例如3D场景图、多种照明效果以及一些工具,如网格修整和相机跟踪等。这些扩展功能可以让开发者更好地优化和调整他们的代码以实现更好的性能和视觉效果。 总之,Helix Toolkit文档丰富而详细,对于想要学习和使用这个工具包的开发人员来说是一个宝贵的资源。 ### 回答2: HelixToolkit是面向.NET开发者的一种3D绘图工具,主要用于建立3D图形和渲染。它是开放源码的,支持多种3D平面,如WPF、UWP、WinForms、ASP.NET、DirectX、OpenGL和Unity等。 HelixToolkit有着丰富的文档资源,其中包括官方文档、社群贡献文档和视频教学等,这些文档资源可以帮助用户更好地了解HelixToolkit的使用方法和开发知识。 HelixToolkit的官方文档非常详尽,包括了工具的全部API、教程和示例代码等。此外,官方文档还提供了社群支持,在用户的问题得到社群的帮助以及开发者提供的技术支持。 社群贡献的文档也可以提供有价值的建议,泛滥的思路,以更广的视野来应对HelixToolkit的开发需求。 对于初学者来说,HelixToolkit的视频教学非常有价值,教学内容语言通俗易懂,涵盖了从简单的立体渲染到复杂的3D模型建立和互动展示等多方面。通过这些教学,初学者可以快速掌握HelixToolkit的知识和技巧。 总之,HelixToolkit文档资源非常齐全,可以满足用户在开发过程中的各种需求。无论是初学者还是有经验的开发者,都可以找到适合自己的学习资源和支持服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值