25.03.2020, 13:15
|
#1263
|
Местный
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 480 раз(а) в 147 сообщениях
Вес репутации: 195
|
Цитата:
Сообщение от Letos
Для поворота вокруг точки на заданный угол написал функцию и пример как её пользоваться:
|
Никак не могу это допилить для правильного поворота тел вращения. И у панели иногда вращает не по центру а по краю.
Скрытый текст
Код:
/**
* Повернуть объект вокруг точки
* @param {Object3} obj Объект
* @param {Vector} pointGCS Точка в ГСК
* @param {Vector} axis Ось поворота
* @param {Number} angle Угол поворота
*/
function RotateAroundPoint(obj, pointGCS, axis, angle){
var localPoint = obj.ToObject(pointGCS);
obj.RotateGCS(axis, angle);
var newPointGCS = obj.ToGlobal(localPoint);
console.log(pointGCS);
console.log(newPointGCS);
var diff = {
x: pointGCS.x - newPointGCS.x,
y: pointGCS.y - newPointGCS.y,
z: pointGCS.z - newPointGCS.z,
}
console.log(diff);
obj.TranslateGCS(diff);
}
var pan = Model.Selected
// поворот относительно центра панели в нижней точке по оси Y на 90 градусов
RotateAroundPoint(
pan,
pan.ToGlobal({
x: pan.GCenter.x,
y: 0,
z: pan.GCenter.z
}),
AxisY,
90);
[свернуть]
|
|
|