Создание цилиндра с осью, центрируемой по-другому

Я знаю, что Matlab имеет функцию, вызванную цилиндр для создания точек для цилиндра когда число очков вдоль окружности и длина радиуса. Что, если я не хочу цилиндр единицы, и также не хотеть, чтобы это центрировалось в оси по умолчанию (например, вдоль оси z)? Каков был бы самый легкий подход для создания такого цилиндра?Заранее спасибо.

6
задан stanigator 10 March 2010 в 23:47
поделиться

2 ответа

Предыдущий ответ хорош, но вы можете заставить Matlab выполнять большую часть работы за вас (потому что результаты цилиндра разделяются Компоненты x, y, z , вам нужно немного поработать , чтобы выполнить матричное умножение для вращения). Чтобы центр основания цилиндра находился на уровне [x0 y0 z0] , масштабированном на [xf yf xf] (используйте xf = yf , если вы не хотите эллиптический цилиндр), используйте:

[x y z] = cylinder;
h=mesh(x*xf+x0,y*yf+y0,z*zf+z0)

Если вы также хотите повернуть его так, чтобы он не был выровнен по оси z, используйте rotate . Например, чтобы повернуть ось x на 90 градусов, чтобы она была выровнена по оси y, используйте:

rotate(h,[1 0 0],90)
11
ответ дан 8 December 2019 в 14:42
поделиться

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

5
ответ дан 8 December 2019 в 14:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: