Wpf, кульовий маніпулятор

Одним з найбільш затребуваних способів поведінки тривимірних сцен є можливість обертання об'єкта за допомогою миші. Найпоширенішою реалізацією такої поведінки є так званий віртуальний кульової маніпулятор (trackball). який присутній у багатьох програмах тривимірної графіки. Хоча WPF не має вбудовану реалізацію віртуального кульового маніпулятора, команда розробників WPF надала вільно розповсюджуваний клас-приклад, який виконує цю функцію. Віртуальний кульової маніпулятор - це надійний, виключно популярний фрагмент коду, включений до більшості демонстраційних тривимірних додатків, запропонованих командою WPF.

Базовий принцип кульового маніпулятора полягає в тому, що користувач клацає кнопкою миші десь на поверхні тривимірного об'єкту і повертає його навколо уявної центральній осі. Ступінь повороту залежить від відстані перетягування миші. Наприклад, якщо клацнути посередині правої частини Viewport 3D і перетягнути курсор миші вліво, то тривимірна сцена повернеться навколо уявної вертикальної осі. Якщо продовжити переміщення миші вліво, то тривимірна сцена повернеться на 180 градусів, відобразивши задню сторону:

Wpf, кульовий маніпулятор

Оскільки віртуальний кульової маніпулятор переміщує камеру, його не слід використовувати спільно з власної анімацією переміщення камери. Однак його можна застосовувати з анімованої тривимірною сценою (наприклад, з описаної вище сценою, де обертається тор).

Використовувати віртуальний кульової маніпулятор надзвичайно легко. Все, що потрібно для цього - помістити об'єкт Viewport3D в оболонку класу TrackballDecorator. Клас TrackballDecorator включений в проект тривимірних інструментів, так що почати слід з додавання XML-псевдоніма для простору імен.

Схожі статті