Я знаю, что Matlab имеет функцию, вызванную цилиндр для создания точек для цилиндра когда число очков вдоль окружности и длина радиуса. Что, если я не хочу цилиндр единицы, и также не хотеть, чтобы это центрировалось в оси по умолчанию (например, вдоль оси z)? Каков был бы самый легкий подход для создания такого цилиндра?Заранее спасибо.
Предыдущий ответ хорош, но вы можете заставить 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)
Умножьте точки на вашу любимую комбинацию матрицы масштабирования , матрицы перевода и ] матрица вращения .