Создание цилиндра с осью по центру - PullRequest
6 голосов
/ 11 марта 2010

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

Ответы [ 2 ]

11 голосов
/ 11 марта 2010

Предыдущий ответ в порядке, но вы можете заставить Matlab выполнять больше работы за вас (поскольку для результатов cylinder отдельных 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-axis на 90 градусов, чтобы он был выровнен вдоль оси y, используйте:

rotate(h,[1 0 0],90)
5 голосов
/ 11 марта 2010

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

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