Bagikan melalui


PerspectiveCamera Kelas

Definisi

Mewakili kamera proyeksi perspektif.

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
Warisan

Contoh

<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>

Keterangan

PerspectiveCamera menentukan proyeksi model 3D ke permukaan visual 2D. Proyeksi ini mencakup perspektif foreshortening. Dengan kata lain, PerspectiveCamera menggambarkan frustrum yang sisinya menyatu menuju titik di cakrawala. Objek yang lebih dekat ke kamera tampak lebih besar, dan objek yang lebih jauh dari kamera tampak lebih kecil.

Diagram berikut menunjukkan perbedaan antara proyeksi kamera ortografis dan perspektif-foreshortened.

Proyeksi ortografis dan perspektif

Konstruktor

PerspectiveCamera()

Menginisialisasi instans baru kelas PerspectiveCamera.

PerspectiveCamera(Point3D, Vector3D, Vector3D, Double)

Menginisialisasi instans PerspectiveCamera baru kelas menggunakan posisi, arah, dan bidang tampilan yang ditentukan.

Bidang

FieldOfViewProperty

FieldOfView Mengidentifikasi properti dependensi.

Properti

CanFreeze

Mendapatkan nilai yang menunjukkan apakah objek dapat dibuat tidak dapat dimodifikasi.

(Diperoleh dari Freezable)
DependencyObjectType

Mendapatkan yang membungkus jenis CLR instans DependencyObjectType ini.

(Diperoleh dari DependencyObject)
Dispatcher

Mendapatkan ini DispatcherDispatcherObject dikaitkan dengan.

(Diperoleh dari DispatcherObject)
FarPlaneDistance

Mendapatkan atau mengatur nilai yang menentukan jarak dari kamera bidang klip jauh kamera.

(Diperoleh dari ProjectionCamera)
FieldOfView

Mendapatkan atau mengatur nilai yang mewakili bidang tampilan horizontal kamera.

HasAnimatedProperties

Mendapatkan nilai yang menunjukkan apakah satu atau beberapa AnimationClock objek dikaitkan dengan salah satu properti dependensi objek ini.

(Diperoleh dari Animatable)
IsFrozen

Mendapatkan nilai yang menunjukkan apakah objek saat ini dapat dimodifikasi.

(Diperoleh dari Freezable)
IsSealed

Mendapatkan nilai yang menunjukkan apakah instans ini saat ini disegel (baca-saja).

(Diperoleh dari DependencyObject)
LookDirection

Mendapatkan atau mengatur yang Vector3D menentukan arah di mana kamera melihat koordinat dunia.

(Diperoleh dari ProjectionCamera)
NearPlaneDistance

Mendapatkan atau mengatur nilai yang menentukan jarak dari kamera bidang klip dekat kamera.

(Diperoleh dari ProjectionCamera)
Position

Mendapatkan atau mengatur posisi kamera dalam koordinat dunia.

(Diperoleh dari ProjectionCamera)
Transform

Mendapatkan atau mengatur Transform3D yang diterapkan ke kamera.

(Diperoleh dari Camera)
UpDirection

Mendapatkan atau mengatur yang Vector3D menentukan arah kamera ke atas.

(Diperoleh dari ProjectionCamera)

Metode

ApplyAnimationClock(DependencyProperty, AnimationClock)

AnimationClock Menerapkan ke yang ditentukanDependencyProperty. Jika properti sudah dianimasikan, SnapshotAndReplace perilaku handoff digunakan.

(Diperoleh dari Animatable)
ApplyAnimationClock(DependencyProperty, AnimationClock, HandoffBehavior)

AnimationClock Menerapkan ke yang ditentukanDependencyProperty. Jika properti sudah dianimasikan, properti yang ditentukan HandoffBehavior akan digunakan.

(Diperoleh dari Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline)

Menerapkan animasi ke yang ditentukan DependencyProperty. Animasi dimulai ketika bingkai berikutnya dirender. Jika properti yang ditentukan sudah dianimasikan, SnapshotAndReplace perilaku handoff digunakan.

(Diperoleh dari Animatable)
BeginAnimation(DependencyProperty, AnimationTimeline, HandoffBehavior)

Menerapkan animasi ke yang ditentukan DependencyProperty. Animasi dimulai ketika bingkai berikutnya dirender. Jika properti yang ditentukan sudah dianimasikan, properti yang ditentukan HandoffBehavior akan digunakan.

(Diperoleh dari Animatable)
CheckAccess()

Menentukan apakah utas panggilan memiliki akses ke ini DispatcherObject.

(Diperoleh dari DispatcherObject)
ClearValue(DependencyProperty)

Menghapus nilai lokal properti. Properti yang akan dibersihkan ditentukan oleh DependencyProperty pengidentifikasi.

(Diperoleh dari DependencyObject)
ClearValue(DependencyPropertyKey)

Menghapus nilai lokal properti baca-saja. Properti yang akan dibersihkan ditentukan oleh DependencyPropertyKey.

(Diperoleh dari DependencyObject)
Clone()

Membuat kloning yang dapat dimodifikasi dari ini PerspectiveCamera, membuat salinan mendalam dari nilai objek ini. Saat menyalin properti dependensi, metode ini menyalin referensi sumber daya dan pengikatan data (tetapi mungkin tidak lagi diselesaikan) tetapi bukan animasi atau nilainya saat ini.

CloneCore(Freezable)

Menjadikan instans sebagai kloning (salinan mendalam) dari yang ditentukan Freezable menggunakan nilai properti dasar (non-animasi).

(Diperoleh dari Freezable)
CloneCurrentValue()

Membuat klon objek ini PerspectiveCamera yang dapat dimodifikasi, membuat salinan mendalam dari nilai objek ini saat ini. Referensi sumber daya, pengikatan data, dan animasi tidak disalin, tetapi nilainya saat ini.

CloneCurrentValueCore(Freezable)

Menjadikan instans sebagai kloning yang dapat dimodifikasi (salinan mendalam) dari yang ditentukan Freezable menggunakan nilai properti saat ini.

(Diperoleh dari Freezable)
CoerceValue(DependencyProperty)

Memaksakan nilai properti dependensi yang ditentukan. Ini dicapai dengan memanggil fungsi apa pun CoerceValueCallback yang ditentukan dalam metadata properti untuk properti dependensi seperti yang ada pada panggilan DependencyObject.

(Diperoleh dari DependencyObject)
CreateInstance()

Menginisialisasi instans baru kelas Freezable.

(Diperoleh dari Freezable)
CreateInstanceCore()

Saat diimplementasikan di kelas turunan, membuat instans baru dari kelas turunan Freezable .

(Diperoleh dari Freezable)
Equals(Object)

Menentukan apakah yang disediakan DependencyObject setara dengan saat ini DependencyObject.

(Diperoleh dari DependencyObject)
Freeze()

Membuat objek saat ini tidak dapat dimodifikasi dan mengatur propertinya IsFrozen ke true.

(Diperoleh dari Freezable)
FreezeCore(Boolean)

Membuat objek ini Animatable tidak dapat dimodifikasi atau menentukan apakah objek dapat dibuat tidak dapat dimodifikasi.

(Diperoleh dari Animatable)
GetAnimationBaseValue(DependencyProperty)

Mengembalikan nilai non-animasi dari yang ditentukan DependencyProperty.

(Diperoleh dari Animatable)
GetAsFrozen()

Membuat salinan beku dari Freezable, menggunakan nilai properti dasar (non-animasi). Karena salinan dibekukan, sub-objek yang dibekukan disalin oleh referensi.

(Diperoleh dari Freezable)
GetAsFrozenCore(Freezable)

Membuat instans menjadi kloning beku dari yang ditentukan Freezable menggunakan nilai properti dasar (non-animasi).

(Diperoleh dari Freezable)
GetCurrentValueAsFrozen()

Membuat salinan beku dari Freezable menggunakan nilai properti saat ini. Karena salinan dibekukan, sub-objek yang dibekukan disalin oleh referensi.

(Diperoleh dari Freezable)
GetCurrentValueAsFrozenCore(Freezable)

Menjadikan instans saat ini sebagai klon beku dari klon yang ditentukan Freezable. Jika objek memiliki properti dependensi animasi, nilai animasinya saat ini akan disalin.

(Diperoleh dari Freezable)
GetHashCode()

Mendapatkan kode hash untuk ini DependencyObject.

(Diperoleh dari DependencyObject)
GetLocalValueEnumerator()

Membuat enumerator khusus untuk menentukan properti dependensi mana yang telah mengatur nilai secara lokal pada ini DependencyObject.

(Diperoleh dari DependencyObject)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
GetValue(DependencyProperty)

Mengembalikan nilai efektif properti dependensi saat ini pada instans ini dari DependencyObject.

(Diperoleh dari DependencyObject)
InvalidateProperty(DependencyProperty)

Mengevaluasi ulang nilai efektif untuk properti dependensi yang ditentukan.

(Diperoleh dari DependencyObject)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
OnChanged()

Dipanggil ketika objek saat ini Freezable dimodifikasi.

(Diperoleh dari Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject)

Memastikan bahwa penunjuk konteks yang sesuai ditetapkan untuk DependencyObjectType anggota data yang baru saja ditetapkan.

(Diperoleh dari Freezable)
OnFreezablePropertyChanged(DependencyObject, DependencyObject, DependencyProperty)

Anggota ini mendukung infrastruktur Windows Presentation Foundation (WPF) dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

(Diperoleh dari Freezable)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Mengambil alih DependencyObject implementasi OnPropertyChanged(DependencyPropertyChangedEventArgs) untuk juga memanggil handler apa pun Changed sebagai respons terhadap properti dependensi yang berubah dari jenis Freezable.

(Diperoleh dari Freezable)
ReadLocalValue(DependencyProperty)

Mengembalikan nilai lokal properti dependensi, jika ada.

(Diperoleh dari DependencyObject)
ReadPreamble()

Memastikan bahwa Freezable sedang diakses dari utas yang valid. Pewaris Freezable harus memanggil metode ini di awal API apa pun yang membaca anggota data yang bukan properti dependensi.

(Diperoleh dari Freezable)
SetCurrentValue(DependencyProperty, Object)

Mengatur nilai properti dependensi tanpa mengubah sumber nilainya.

(Diperoleh dari DependencyObject)
SetValue(DependencyProperty, Object)

Mengatur nilai lokal properti dependensi, yang ditentukan oleh pengidentifikasi properti dependensinya.

(Diperoleh dari DependencyObject)
SetValue(DependencyPropertyKey, Object)

Mengatur nilai lokal properti dependensi baca-saja, yang ditentukan oleh DependencyPropertyKey pengidentifikasi properti dependensi.

(Diperoleh dari DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Mengembalikan nilai yang menunjukkan apakah proses serialisasi harus membuat serialisasi nilai untuk properti dependensi yang disediakan.

(Diperoleh dari DependencyObject)
ToString()

Membuat representasi string objek ini berdasarkan pengaturan budaya saat ini.

(Diperoleh dari Camera)
ToString(IFormatProvider)

Membuat representasi string Kamera.

(Diperoleh dari Camera)
VerifyAccess()

Memberlakukan bahwa utas panggilan memiliki akses ke ini DispatcherObject.

(Diperoleh dari DispatcherObject)
WritePostscript()

Menaikkan Changed peristiwa untuk Freezable dan memanggil metodenya OnChanged() . Kelas yang berasal dari Freezable harus memanggil metode ini di akhir API apa pun yang memodifikasi anggota kelas yang tidak disimpan sebagai properti dependensi.

(Diperoleh dari Freezable)
WritePreamble()

Memverifikasi bahwa Freezable tidak dibekukan dan diakses dari konteks utas yang valid. Freezable pewaris harus memanggil metode ini di awal API apa pun yang menulis ke anggota data yang bukan properti dependensi.

(Diperoleh dari Freezable)

Acara

Changed

Terjadi ketika Freezable atau objek yang dikandungnya dimodifikasi.

(Diperoleh dari Freezable)

Implementasi Antarmuka Eksplisit

IFormattable.ToString(String, IFormatProvider)

Memformat nilai instans saat ini menggunakan format yang ditentukan.

(Diperoleh dari Camera)

Berlaku untuk