如何缩放圆环并保持管半径不变?

发布于 2024-10-17 03:35:35 字数 227 浏览 0 评论 0原文

如果我有一个像这样定义的环面。

u,v are in the interval [0, 2π),
R is the distance from the center of the tube to the center of the torus,
r is the radius of the tube. 

我想放大R并保持r不变,如何使用变换矩阵来做到这一点,或者可能吗?

If I have a torus defined like this.

u,v are in the interval [0, 2π),
R is the distance from the center of the tube to the center of the torus,
r is the radius of the tube. 

I want to enlarge the R and keep r unchanged, how to use transformation matrix to do it, or is it possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

乜一 2024-10-24 03:35:35

您正在寻找的变换不是线性的,因此它不能用矩阵表示。

为了说明它不是线性的,想象一下以原点为中心的圆环与 xy 平面平行。正 x 轴与环面相交于两点;我们将离原点较近的称为a,将较远的称为b

应用转换后,我们预计 ab 都远离原点相同的量。但由于 ba 的倍数,这是不可能的:

b = c*a
f(b) - b = f(c*a) - c*a
         = c*f(a) - c*a
         = c*( f(a) - a )

ab 相关的相同倍数也是如此涉及 ab 相比移动了多远。

即使将圆环投影到平面上,也会遇到同样的问题。

The transformation you're looking for is not linear, so it can't be represented by a matrix.

To tell that it's not linear, imagine the torus centered at the origin laid out parallel to the xy-plane. The positive x-axis intersects the torus at two points; let's call the one closer to the origin a and the farther one b.

After you apply your transformation, we expect that a and b both moved away from the origin by the same amount. But since b is a multiple of a, this is impossible:

b = c*a
f(b) - b = f(c*a) - c*a
         = c*f(a) - c*a
         = c*( f(a) - a )

The same multiple that relates a and b also relates how far a moved compared to b.

You will have the same problem even if you project the torus onto a plane.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文