PerspectiveCamera クラス

定義

透視投影カメラを表します。

public ref class PerspectiveCamera sealed : System::Windows::Media::Media3D::ProjectionCamera
public sealed class PerspectiveCamera : System.Windows.Media.Media3D.ProjectionCamera
type PerspectiveCamera = class
    inherit ProjectionCamera
Public NotInheritable Class PerspectiveCamera
Inherits ProjectionCamera
継承

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
  <DockPanel>
    <Viewbox>
      <Canvas Width="321" Height="201">

        <!-- The Viewport3D provides a rendering surface for 3-D visual content. -->
        <Viewport3D ClipToBounds="True" Width="150" Height="150" Canvas.Left="0" Canvas.Top="10">

          <!-- Defines the camera used to view the 3D object. -->
          <Viewport3D.Camera>
            <PerspectiveCamera Position="0,0,2" LookDirection="0,0,-1" FieldOfView="60" />
          </Viewport3D.Camera>

          <!-- The ModelVisual3D children contain the 3D models -->
          <Viewport3D.Children>

            <!-- This ModelVisual3D defines the light cast in the scene. Without light, the 3D 
                 object cannot be seen. Also, the direction of the lights affect shadowing. If desired,
                 you can create multiple lights with different colors that shine from different directions. -->
            <ModelVisual3D>
              <ModelVisual3D.Content>
                <DirectionalLight Color="#FFFFFF" Direction="-0.612372,-0.5,-0.612372" />
              </ModelVisual3D.Content>
            </ModelVisual3D>
            <ModelVisual3D>
              <ModelVisual3D.Content>
                <GeometryModel3D>

                  <!-- The geometry specifies the shape of the 3D plane. In this sample, a flat sheet is created. -->
                  <GeometryModel3D.Geometry>
                    <MeshGeometry3D
                     TriangleIndices="0,1,2 3,4,5 "
                     Normals="0,0,1 0,0,1 0,0,1 0,0,1 0,0,1 0,0,1 "
                     TextureCoordinates="0,0 1,0 1,1 1,1 0,1 0,0 "
                     Positions="-0.5,-0.5,0.5 0.5,-0.5,0.5 0.5,0.5,0.5 0.5,0.5,0.5 -0.5,0.5,0.5 -0.5,-0.5,0.5 " />
                  </GeometryModel3D.Geometry>
                  <!-- The material specifies the material applied to the 3D object. In this sample a tiled drawing   
                       covers the surface of the 3D object.-->
                  <GeometryModel3D.Material>
                    <DiffuseMaterial>
                      <DiffuseMaterial.Brush>
                        <DrawingBrush Viewport="0,0,0.1,0.1" TileMode="Tile">
                          <DrawingBrush.Drawing>
                            <DrawingGroup>
                              <DrawingGroup.Children>
                                <GeometryDrawing Geometry="M0,0.1 L0.1,0 1,0.9, 0.9,1z"
                                  Brush="Gray" />
                                <GeometryDrawing Geometry="M0.9,0 L1,0.1 0.1,1 0,0.9z"
                                  Brush="Gray" />
                                <GeometryDrawing Geometry="M0.25,0.25 L0.5,0.125 0.75,0.25 0.5,0.5z"
                                  Brush="#FFFF00" />
                                <GeometryDrawing Geometry="M0.25,0.75 L0.5,0.875 0.75,0.75 0.5,0.5z"
                                  Brush="Black" />
                                <GeometryDrawing Geometry="M0.25,0.75 L0.125,0.5 0.25,0.25 0.5,0.5z"
                                  Brush="#FF0000" />
                                <GeometryDrawing Geometry="M0.75,0.25 L0.875,0.5 0.75,0.75 0.5,0.5z"
                                  Brush="MediumBlue" />
                              </DrawingGroup.Children>
                            </DrawingGroup>
                          </DrawingBrush.Drawing>
                        </DrawingBrush>
                      </DiffuseMaterial.Brush>
                    </DiffuseMaterial>
                  </GeometryModel3D.Material>
                  <!-- Apply a transform to the object. In this sample, a rotation transform is applied, rendering the 
                       3D object rotated. -->
                  <GeometryModel3D.Transform>
                    <RotateTransform3D>
                      <RotateTransform3D.Rotation>
                        <AxisAngleRotation3D Axis="0,3,0" Angle="40" />
                      </RotateTransform3D.Rotation>
                    </RotateTransform3D>
                  </GeometryModel3D.Transform>
                </GeometryModel3D>
              </ModelVisual3D.Content>
            </ModelVisual3D>
          </Viewport3D.Children>
        </Viewport3D>
      </Canvas>
    </Viewbox>
  </DockPanel>
</Page>

注釈

PerspectiveCamera は、2D ビジュアル サーフェスへの 3D モデルの投影を指定します。 このプロジェクションには、パースペクティブの前書きが含まれます。 言い換えると、 は、 PerspectiveCamera 水平線上の点に向かって辺が収束する錐体を表します。 カメラに近いオブジェクトは大きく表示され、カメラから遠く離れたオブジェクトは小さく表示されます。

次の図は、正投影と透視投影の違いを示しています。

正投影と透視投影

コンストラクター

PerspectiveCamera()

PerspectiveCamera クラスの新しいインスタンスを初期化します。

PerspectiveCamera(Point3D, Vector3D, Vector3D, Double)

位置、方向、および視野を指定して、PerspectiveCamera クラスの新しいインスタンスを初期化します。

フィールド

FieldOfViewProperty

FieldOfView 依存関係プロパティを識別します。

プロパティ

CanFreeze

オブジェクトを変更不可能にできるかどうかを示す値を取得します。

(継承元 Freezable)
DependencyObjectType

このインスタンスの DependencyObjectType CLR 型をラップする を取得します。

(継承元 DependencyObject)
Dispatcher

この Dispatcher が関連付けられている DispatcherObject を取得します。

(継承元 DispatcherObject)
FarPlaneDistance

カメラの遠クリップ面のカメラからの距離を指定する値を取得または設定します。

(継承元 ProjectionCamera)
FieldOfView

カメラの水平視野を表す値を取得または設定します。

HasAnimatedProperties

1 つ以上の AnimationClock オブジェクトが、このオブジェクトの任意の依存関係プロパティに関連付けられているかどうかを示す値を取得または設定します。

(継承元 Animatable)
IsFrozen

オブジェクトが変更可能かどうかを示す値を取得します。

(継承元 Freezable)
IsSealed

このインスタンスが現在シールされている (読み取り専用である) かどうかを示す値を取得します。

(継承元 DependencyObject)
LookDirection

ワールド座標でカメラが向いている方向を定義する Vector3D を取得または設定します。

(継承元 ProjectionCamera)
NearPlaneDistance

カメラの近クリップ面のカメラからの距離を指定する値を取得または設定します。

(継承元 ProjectionCamera)
Position

ワールド座標でのカメラの位置を取得または設定します。

(継承元 ProjectionCamera)
Transform

カメラに適用される Transform3D を取得または設定します。

(継承元 Camera)
UpDirection

カメラの上向き方向を定義する Vector3D を取得または設定します。

(継承元 ProjectionCamera)

メソッド

ApplyAnimationClock(DependencyProperty, AnimationClock)

AnimationClock を指定した DependencyProperty に適用します。 プロパティが既にアニメーション化されている場合は、SnapshotAndReplace ハンドオフ動作が使用されます。

(継承元 Animatable)
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

AnimationClock を指定した DependencyProperty に適用します。 プロパティが既にアニメーション化されている場合は、指定した HandoffBehavior が使用されます。

(継承元 Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline)

指定された DependencyProperty にアニメーションを適用します。 アニメーションは、次のフレームがレンダリングされるときに開始されます。 指定されたプロパティが既にアニメーション化されている場合は、SnapshotAndReplace ハンドオフ動作が使用されます。

(継承元 Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)

指定された DependencyProperty にアニメーションを適用します。 アニメーションは、次のフレームがレンダリングされるときに開始されます。 指定したプロパティが既にアニメーション化されている場合は、指定した HandoffBehavior が使用されます。

(継承元 Animatable)
CheckAccess()

呼び出し元のスレッドがこの DispatcherObject にアクセスできるかどうかを確認します。

(継承元 DispatcherObject)
ClearValue(DependencyProperty)

プロパティのローカル値をクリアします。 クリアするプロパティは DependencyProperty 識別子で指定されます。

(継承元 DependencyObject)
ClearValue(DependencyPropertyKey)

読み取り専用プロパティのローカル値を消去します。 消去するプロパティは、DependencyPropertyKey で指定します。

(継承元 DependencyObject)
Clone()

この PerspectiveCamera の変更可能な複製を作成し、このオブジェクトの値の詳細コピーを作成します。 このメソッドは、依存関係プロパティをコピーするときにリソース参照とデータ バインディングをコピーしますが (ただし、これらは解決されなくなる場合があります)、アニメーションやその現在の値はコピーしません。

CloneCore(Freezable)

基本 (アニメーション化されていない) プロパティ値を使用して、インスタンスを、指定した Freezable の複製 (詳細コピー) にします。

(継承元 Freezable)
CloneCurrentValue()

この PerspectiveCamera オブジェクトの変更可能な複製を作成し、このオブジェクトの現在値の詳細コピーを作成します。 リソース参照、データ バインディング、アニメーションはコピーされませんが、それらの現在値はコピーされます。

CloneCurrentValueCore(Freezable)

現在のプロパティ値を使用して、インスタンスを、指定した Freezable の変更可能な複製 (詳細コピー) にします。

(継承元 Freezable)
CoerceValue(DependencyProperty)

指定した依存関係プロパティの値を強制します。 これは、呼び出し元の DependencyObject の依存関係プロパティのプロパティ メタデータで指定されている CoerceValueCallback 関数を呼び出すことによって実現されます。

(継承元 DependencyObject)
CreateInstance()

Freezable クラスの新しいインスタンスを初期化します。

(継承元 Freezable)
CreateInstanceCore()

派生クラスで実装された場合、Freezable 派生クラスの新しいインスタンスを作成します。

(継承元 Freezable)
Equals(Object)

指定した DependencyObject が現在の DependencyObject と等しいかどうかを判断します。

(継承元 DependencyObject)
Freeze()

現在のオブジェクトを変更不可能にし、その IsFrozen プロパティを true に設定します。

(継承元 Freezable)
FreezeCore(Boolean)

Animatable オブジェクトを変更不可能な状態にするか、変更不可能な状態にできるかどうかを判断します。

(継承元 Animatable)
GetAnimationBaseValue(DependencyProperty)

指定した DependencyProperty のアニメーション化されていない値を返します。

(継承元 Animatable)
GetAsFrozen()

基本プロパティ値 (アニメーション化されていない値) を使用して、Freezable の 固定されたコピーを作成します。 コピーが固定されているため、参照によって任意の固定されたサブオブジェクトがコピーされます。

(継承元 Freezable)
GetAsFrozenCore(Freezable)

基本プロパティ値 (アニメーション化されていない値) を使用して、インスタンスを、指定した Freezable の固定された複製にします。

(継承元 Freezable)
GetCurrentValueAsFrozen()

現在のプロパティ値を使用して、Freezable の固定されたコピーを作成します。 コピーが固定されているため、参照によって任意の固定されたサブオブジェクトがコピーされます。

(継承元 Freezable)
GetCurrentValueAsFrozenCore(Freezable)

現在のインスタンスを、指定した Freezable の固定された複製にします。 オブジェクトに、アニメーション化された依存関係プロパティが存在する場合、現在アニメーション化されている値がコピーされます。

(継承元 Freezable)
GetHashCode()

この DependencyObject のハッシュ コードを取得します。

(継承元 DependencyObject)
GetLocalValueEnumerator()

どの依存関係プロパティがこの DependencyObject 上にローカルに設定された値を持つかを確認するための、専用の列挙子を作成します。

(継承元 DependencyObject)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
GetValue(DependencyProperty)

DependencyObject のこのインスタンスにある依存関係プロパティの現在の有効値を返します。

(継承元 DependencyObject)
InvalidateProperty(DependencyProperty)

指定した依存関係プロパティの有効値を再評価します。

(継承元 DependencyObject)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
OnChanged()

現在の Freezable オブジェクトの変更時に呼び出されます。

(継承元 Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

設定されたばかりの DependencyObjectType データ メンバーに対して、適切なコンテキスト ポインターが確立されていることを確認します。

(継承元 Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

このメンバーは、Windows Presentation Foundation (WPF) インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

(継承元 Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

OnPropertyChanged(DependencyPropertyChangedEventArgs)DependencyObject 実装をオーバーライドして、さらに型 Freezable の変化する依存関係プロパティへの応答として任意の Changed ハンドラーも呼び出します。

(継承元 Freezable)
ReadLocalValue(DependencyProperty)

ローカルの依存関係プロパティの値を返します (存在する場合)。

(継承元 DependencyObject)
ReadPreamble()

Freezable が有効なスレッドからアクセスされていることを確認します。 Freezable の継承側は、依存関係プロパティでないデータ メンバーを読み取る任意の API の開始時に、このメソッドを呼び出す必要があります。

(継承元 Freezable)
SetCurrentValue(DependencyProperty, Object)

依存関係プロパティ値のソースを変更せずにその値を設定します。

(継承元 DependencyObject)
SetValue(DependencyProperty, Object)

依存関係プロパティ識別子を指定して、該当する依存関係プロパティのローカル値を設定します。

(継承元 DependencyObject)
SetValue(DependencyPropertyKey, Object)

依存関係プロパティの DependencyPropertyKey 識別子で指定した読み取り専用の依存関係プロパティのローカル値を設定します。

(継承元 DependencyObject)
ShouldSerializeProperty(DependencyProperty)

シリアル化プロセスが、指定された依存関係プロパティの値をシリアル化する必要があるかどうかを示す値を返します。

(継承元 DependencyObject)
ToString()

現在のカルチャ設定に基づいて、このオブジェクトの文字列表現を作成します。

(継承元 Camera)
ToString(IFormatProvider)

カメラの文字列表現を作成します。

(継承元 Camera)
VerifyAccess()

呼び出し元のスレッドがこの DispatcherObject にアクセスできるように強制します。

(継承元 DispatcherObject)
WritePostscript()

FreezableChanged イベントを発生させ、その OnChanged() メソッドを呼び出します。 Freezable から派生するクラスは、依存関係プロパティとして格納されていないクラス メンバーを変更するすべての API の終了時に、このメソッドを呼び出す必要があります。

(継承元 Freezable)
WritePreamble()

Freezable が固定されておらず、有効なスレッド コンテキストからアクセスされていることを確認します。 Freezable の継承側は、依存関係プロパティでないデータ メンバーに書き込む任意の API の開始時に、このメソッドを呼び出す必要があります。

(継承元 Freezable)

イベント

Changed

Freezable、またはこれに含まれているオブジェクトが変更されると発生します。

(継承元 Freezable)

明示的なインターフェイスの実装

IFormattable.ToString(String, IFormatProvider)

指定された書式を使用して現在のインスタンスの値を書式設定します。

(継承元 Camera)

適用対象