Bagikan melalui


Mekanika Inertia

Inertia digunakan untuk melakukan perhitungan untuk menganimasikan gerakan objek dan untuk mengaktifkan dukungan untuk kegunaan generik dalam aplikasi yang menggabungkan Windows Touch. Bagian ini mengilustrasikan fitur berikut yang diaktifkan oleh inertia.

  • Gambaran singkat tentang fisika inertia.
  • Animasi objek halus menggunakan properti kecepatan dan deselerasi.
  • Animasi objek halus menggunakan properti perpindahan.
  • Memantul dari tepi layar menggunakan batas elastis.

Gambaran Umum Fisika Inertia

Prosesor inertia menggunakan model fisika sederhana yang menggabungkan posisi, nilai deelerasi, dan kecepatan awal. Waktu digunakan sebagai input dinamis ke model untuk menentukan posisi objek saat ini yang terlantar. Grafik dan rumus berikut menguraikan model fisika yang digunakan untuk menghitung posisi objek.

ilustrasi memperlihatkan grafik dan rumus yang digunakan untuk menghitung posisi objek

Dalam rumus yang digunakan untuk menghitung posisi saat ini (x), kecepatan awal (v) dikalikan dengan waktu yang berlalu (t) dan dikurangi oleh faktor perlambatan (d) waktu kuadrat waktu. Ini menghasilkan deselerasi objek yang halus. Dalam ilustrasi sebelumnya di bagian awal (paling kiri) dari kurva, objek bergerak cepat karena kecepatannya saat ini adalah kecepatan awal. Di bagian akhir (paling kanan) dari kurva, objek telah sepenuhnya berhenti karena kecepatannya adalah 0. Perhitungan kecepatan objek untuk kecepatan x, kecepatan y, dan kecepatan rotasi semuanya menggunakan rumus ini untuk perhitungan.

Semua jarak yang digunakan untuk prosesor inertia relatif. Jika Anda ingin menggunakan koordinat layar, Anda meneruskan koordinat layar ke prosesor manipulasi (atau inertia) ; jika Anda ingin menggunakan koordinat absolut, Anda meneruskan koordinat tersebut ke dalam prosesor yang Anda gunakan. Terlepas dari nilai yang Anda gunakan, prosesor manipulasi akan menggunakan tanda centang jam milidetik untuk memproses waktu. Nilai-nilai ini dapat diteruskan langsung ke prosesor inertia menggunakan metodeProcessTime atau dengan menggunakan tanda waktu default melalui panggilan ke Proses.

Animasi Objek Halus menggunakan Properti Velocity dan Deceleration

Anda dapat mengaktifkan animasi yang lancar dengan langsung berinteraksi dengan model fisika dengan mengatur nilai kecepatan dan deselerasi di antarmuka prosesor inertia dan kemudian memanggil Proses. Memanggil Proses akan memicu manipulasi objek yang pada gilirannya akan menyebabkan pembaruan UI. Nilai kecepatan objek yang diteruskan ke prosesor inertia biasanya diambil dari prosesor manipulasi setelah selesai. Nilai deselerasi Anda akan tergantung pada berapa lama Anda ingin objek Anda dianimasikan dan unit yang Anda gunakan untuk perhitungan Anda. Karena nilainya tergantung, terkadang Anda harus menskalakan kecepatan input dari prosesor maniplasi dan menggunakan nilai arbitrer untuk deelerasi. Nilai berikut ini khas untuk berbagai skenario di mana Anda meneruskan nilai centipixel dari properti x dan y dari strukturTOUCHINPUTke prosesor manipulasi.

Skenario Set Properti Nilai Deselerasi Penskalaan Input Kecepatan Umum Catatan
Terjemahan DesiredDeceleration 0.003f Tidak. Menggunakan nilai ini akan menghasilkan animasi jarak yang lebih panjang saat menggunakan input sentuhan.
Terjemahan DesiredDeceleration 0.001f Kecepatan awal ke-1/20 untuk input sentuhan, tidak ada untuk input mouse Menggunakan nilai ini akan menganimasikan untuk sekitar input kecepatan umum yang diberikan sedetik.
Terjemahan DesiredDeceleration 0,5f Tidak Menggunakan nilai ini memberikan nuansa alami untuk animasi pada layar Windows Touch besar.
Rotasi DesiredAngularDeceleration 0.000015f Radian dikonversi ke derajat. Menggunakan nilai ini menghasilkan animasi rotasi yang lebih panjang saat menggunakan input sentuhan.
Rotasi DesiredAngularDeceleration 0.00001f Delta rotasi ke-1/40 untuk input sentuhan, tidak ada untuk input mouse Nilai ini dalam radian sehingga Anda harus menggunakan nilai deselerasi dan kecepatan yang sangat kecil.
Rotasi DesiredAngularDeceleration 0.000005f Tidak Nilai ini memiliki nuansa alami pada tampilan Windows Touch besar.

 

Animasi Objek Halus menggunakan Properti Perpindahan yang Diinginkan

Dalam beberapa kasus, Anda tidak ingin menggunakan input pengguna untuk perpindahan objek, tetapi Anda masih ingin objek dianimasikan dengan lancar di seluruh layar. Dalam hal ini, Anda dapat menggunakan properti perpindahan dalam prosesor inertia agar prosesor menghitung kecepatan awal untuk memindahkan objek di seluruh layar.

Mengontrol Posisi Objek Menggunakan Batas Elastis

Setelah Anda memiliki objek yang bergerak di seluruh layar, Anda biasanya ingin objek tersebut berhenti sebelum berada di luar sudut pandang pengguna. Prosesor inertia memungkinkan fungsionalitas ini melalui properti batas dan margin elastis. Gambar berikut mengilustrasikan berbagai properti batas dan margin dalam aplikasi umum.

cuplikan layar memperlihatkan properti batas dan margin elastis

Anda mengatur batas kiri, atas, kanan, dan bawah dan margin elastis untuk aplikasi Anda, dan prosesor inertia akan menangani menjaga elemen UI dalam batas. Ketika objek mencapai margin elastis, objek akan melambat hingga mencapai batas. Ini tidak akan pernah meninggalkan margin itu lagi selama inertia, tetapi masih akan bergerak sampai komponen inertia tegak lurus objek turun menjadi 0. Dalam ilustrasi, lingkaran dipindahkan ke batas elastis kiri. Panah padat menunjukkan arah manipulasi; lingkaran padat adalah posisi awal objek; panah solid adalah perubahan yang dilakukan sebelum lingkaran mengenai margin elastis; panah putus-putus menunjukkan di mana prosesor inertia memanipulasi lingkaran setelah mengenai margin; dan lingkaran putus-putus menunjukkan di mana objek berhenti.

Nota

Mengatur properti margin akan memindahkan batas ke luar. Misalnya, jika batas atas Anda diatur ke 50 dan kemudian Anda mengatur margin elastis teratas ke 10, batas atas Anda akan secara efektif menjadi 40.

 

Menangani Inertia dalam Kode Tidak Terkelola

inertia

Manipulasi