- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想生成一个弯曲的圆柱体。例如,轴是正弦曲线或圆。
我可以得到一个直圆柱体如下
% Parameters
r=5; l=5; nTheta=100;
theta = 2*pi*(linspace(0,1,nTheta+1));
x = r * cos(theta);
x(end) = []; % Last element is same as first. So, just remove it
y = r * sin(theta);
y(end) = [];
z = repmat((0:l-1)', 1, nTheta);
% Plot
surf(repmat(x,l,1),repmat(y,l,1),z);
z = (0:l-1)' * sin(linspace(-pi,pi,nTheta));
我认为应该给我一个以正弦曲线为轴的圆柱体。但是,它给了我 现在,我知道参数化是错误的。使圆柱体沿正弦轴为轴的正确参数化是什么?
最佳答案
抱歉,我没有 Matlab,但这是一个 Mathematica 模拟软件。我想你可以翻译它
而不是像 answer of Savithru 中展示的那样有一个倾斜的圆柱体,我们可以做遵循给定曲线的版本。
本质上,您需要的是一组与您尝试遵循的曲线 f(x)
正交的圆。首先,让我们定义一个圆:
圆圈:
假设一个半径为 R
的圆在垂直于单位向量 w=(w1,w2,w3)
的平面内,它通过点 (X0, Y0,Z0)
。该平面由垂直于 w< 的两个单位向量
。圆的参数方程为:u=(u1,u2,u3)
和 v=(v1,v2,v3)
定义
x = X0 + R cos(theta) u1 + R sin(theta) v1
y = Y0 + R cos(theta) u2 + R sin(theta) v2
z = Z0 + R cos(theta) u3 + R sin(theta) v3
其中 theta
在 0 到 2π 的区间内变化。
现在我们定义了圆,让我们定义管。
pipe :
要定义一个曲面,我们需要两个参数,第一个是圆的 theta
。如果我们想跟随 f(x)
,第二个将是 x
。我们需要做的就是定义正交向量 u
和 v
。我们知道它们正交于单位向量w
,这不过是f(x)
的一阶导数的切线。因此你可以定义:
w = Normalize[{1,f'(x),0}]
u = Normalize[Cross[w,{0,0,1}]]
v = Cross[w,u]
所以你的参数方程变成:
x = x + R cos(theta) u1(x) + R sin(theta) v1(x)
y = f(x) + R cos(theta) u2(x) + R sin(theta) v2(x)
z = 0 + R cos(theta) u3(x) + R sin(theta) v3(x)
在 Mathematica 中是这样写的:
R=1
f[x_] := Sin[x]
w[x_] := Normalize[{1, f'[x], 0}]
u[x_] := Normalize[Cross[w[x], {0, 0, 1}]]
v[x_] := Cross[w[x], u[x]]
ParametricPlot3D[{x, f[x], 0} + R Cos[t] u[x] + R Sin[t] v[x], {x, 0, 2 Pi}, {t, 0, 2 Pi}]
注意:您可以使用从切线、法线和双法线向量构建的 Frenet-Serret 框架轻松扩展它,用于 3D 空间中的曲线f(r)
关于matlab - 如何参数化弯曲圆柱体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53999426/
我正在使用我的简单 PHP 验证码算法 ( http://www.source.ofitall.com/devel/captcha.php ),我一直在努力尝试调整它以使其更具吸引力和更易于阅读,谷歌
我正在 android 中实现一个 ListView ,它看起来就像这样并滚动 我一直在通过在我的适配器的 getView 中设置膨胀行的布局参数来做到这一点,但由此引发的问题是 ListView 变
我正在尝试使用 flex 和 bison 创建一个计算器,它可以进行一组操作(结果分配给变量)。计算器使用存储器来存储这些变量。当我通过终端(标准输入键盘)进行此计算时,一切正常。但是,当我尝试使用文
我的Flex应用程序中有数据网格,我使用Arraycollection绑定(bind)数据网格(使用remoteobject方法调用从java类获取数据)。现在我正在数据网格中执行添加/编辑/删除,我
是否可以制作弯曲或拱形形状的矩形。这是我的 jsfiddle https://jsfiddle.net/dibyendu/y8pthz2x/ 。我想使用 d3 使雷达图轴上的这些矩形成为弧形/曲线 最
我有一张代表某个区域海拔的图像。但是制造它的无人机不一定走直线(尽管图像总是矩形的)。我还有每 20 厘米生成的 gps 坐标。 如何“弯曲”这个矩形图像(曲线/马赛克),使其代表无人机实际经过的弯曲
我经历了How to curve the top of a UIView Controller in Swift 并发表看法。它附在下面。我想从我的 View 中删除该背景色。我在 Storyboar
任何人都可以帮助弯曲 View 以达到以下效果。我正在使用自定义 View 组,我想操纵 Canvas 来实现以下效果,谁能帮帮我。 谢谢 最佳答案 你需要知道: Camera Matrix 这是一个
我尝试绘制一些 3D 正方形(在 iPhone 上使用 OpenGL)并让它们旋转,现在它们看起来像一个球体。 http://i618.photobucket.com/albums/tt265/Loy
我想创建一个 div,它是一个按钮,它包含一个国旗的图片和一个国家的 abv,我已经将一些代码放入我想要的内容中,但这不是 Bootstrap 的方式,我'我正在努力解决这个问题,以及如何使用 boo
现在我正在用一系列 View 填充 UIScrollView。需要扭曲 View 以使 UIScrollView 看起来像旋转木马。换句话说,当用户滚动时,它需要像一个圆圈。我以前从未做过类似的事情,
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是一名优秀的程序员,十分优秀!