Как изменить центр 3D объекта WPF - PullRequest
0 голосов
/ 04 февраля 2011

Я борюсь с лучшим способом изменения центральной точки 3D-объекта (Model3DGroup) в WPF.

Я экспортировал модель из SketchUp, и все в порядке, но центры оторвалисьположение, причиняя мне проблемы при вращении объектов.Теперь мне нужно сделать несколько поворотов вокруг каждого объекта в собственном центре, и я не знаю, как это сделать ...

Буду признателен за любые предложения.

Спасибо

ИспользованиеПо предложению Джексона Поупа, я использовал приведенный ниже код, чтобы получить центральную точку объекта:

var bounds = this.My3DObject.Bounds;

var x = bounds.X + (bounds.SizeX / 2);
var y = bounds.Y + (bounds.SizeY / 2);
var z = bounds.Z + (bounds.SizeZ / 2);

var centerPoint = new Point3D(x, y, z);

Тем временем я попытаюсь найти лучшее решение, чтобы попытаться переместить все точки до желаемого смещения ...

1 Ответ

2 голосов
/ 04 февраля 2011

Чтобы повернуть объект вокруг его центра, вам нужно сначала перевести его так, чтобы его центр находился в начале координат. Затем поверните его (а затем, возможно, переведите обратно в исходное положение).

Найдите минимальную и максимальную протяженность объекта, рассчитайте его центр = min + (max-min) / 2. Переведите с помощью (-centreX, -centreY, -centreZ), поверните и затем переведите с помощью (centreX, centreY, centreZ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...