- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了演示 3D 中线性变换的效果 x -> A x
,我想绘制一个立方体并在 A
下显示其变换。为此,我需要分别为每个面着色,并显示每个面的顶点和轮廓线。
我无法弄清楚如何为面部使用不同的颜色,以及如何使其更通用,因此我不必为转换下的结果重复所有步骤。
我试过的:
library(rgl)
c3d <- cube3d(color=rainbow(6), alpha=0.5)
open3d()
shade3d(c3d)
points3d(t(c3d$vb), size=5)
for (i in 1:6)
lines3d(t(c3d$vb)[c3d$ib[,i],])
points3d
形状的组件上使用
lines3d
和
c3d
,并且没有可以转换的单个对象。
A
给出了一个特定的转换,这是我将它添加到场景中的方法,
A <- matrix(c( 1, 0, 1, 0, 2, 0, 1, 0, 2), 3, 3)
c3d_trans <- transform3d(c3d, A)
shade3d( c3d_trans )
points3d(t(c3d_trans$vb), size=5)
最佳答案
在 rgl
中,绘制原始形状时,将颜色应用于顶点,而不是面。通过在顶点处插入颜色来为面着色。
但是,cube3d()
不是原始形状,而是“网格”。它被绘制为 6 个独立的四边形。每个顶点使用 3 次。
它没有真正记录在案,但使用颜色的顺序是前 4 种用于一张脸,然后下 4 种用于下一张脸,依此类推。如果您希望颜色为 rainbow(6)
,则需要复制每种颜色 4次:
library(rgl)
c3d <- cube3d(color=rep(rainbow(6), each = 4), alpha = 0.5)
open3d()
shade3d(c3d)
points3d(t(c3d$vb), size = 5)
for (i in 1:6)
lines3d(t(c3d$vb)[c3d$ib[,i],])
alpha
值;我发现
alpha = 0.5
的透明度有点令人困惑。
sphere <- subdivision3d(cube3d(color=rep(rainbow(6),rep(4*4^4,6)), alpha=0.9),
depth=4)
sphere$vb[4,] <- apply(sphere$vb[1:3,], 2, function(x) sqrt(sum(x^2)))
open3d()
shade3d(sphere)
A <- matrix(c( 1, 0, 1, 0, 2, 0, 1, 0, 2), 3, 3)
trans <- transform3d(sphere, A)
open3d()
shade3d(trans)
关于rgl:绘制一个带有彩色面、顶点和线的立方体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39730889/
rgl 包过去是在 R-forge 上开发的 https://r-forge.r-project.org/projects/rgl/ .安装最新版本的方法是 install.packages("rgl
rgl.cur() 返回当前 rgl 设备编号,rgl.set() 允许将设备设置为事件设备。我找不到返回所有打开的设备的 rgl 函数,例如用于标准图形设备的 dev.list()。是否有我错过的功
rgl.postscript() 不应该用于 headless 服务器,即当 options(rgl.useNULL = TRUE) 时?我知道 rgl.snapshot() 不起作用。 librar
我正在尝试创建一个显示 RGL 可视化效果的 Shiny 应用程序(这只不过是一组抛光的棍子和球体)。请查看下面的可视化代码 library(rgl) library(tidyverse) spher
正在做(R3.4,ubuntu 16.04,rgl 0.95.1441): library(rgl) open3d() 返回: Error in rgl.clear(type, subscen
为了演示 3D 中线性变换的效果 x -> A x ,我想绘制一个立方体并在 A 下显示其变换。为此,我需要分别为每个面着色,并显示每个面的顶点和轮廓线。 我无法弄清楚如何为面部使用不同的颜色,以及如
我正在使用 plot3d() 绘制一些点数据。 我想让我的 y 轴刻度标签更靠近我的 y 轴刻度线。 我能想到的最好的方法是 1)先绘制数据,不绘制轴 2) 调用axis3d() 绘制y 轴和刻度线,
我已尽可能多地关注此问题以解决问题,但没有成功。根本无法安装 R 包“rgl”。我已将 Ubuntu 服务器 16 升级到 R 版本 3.3.1。 PuTTY X11 proxy: Unsupport
使用 rgl 交互地选择合适的视点,然后在格子 3d 图中采用相同的方向会很方便。例如,使用非信息性观点给出以下图。 library(lattice) wireframe(volcano, scree
我使用 scatter3d() 和 Rcmdr 创建了一个漂亮的图。该图包含两个漂亮的表面平滑度。现在我想向该图添加另一个表面,真相(即由生成我的观察值的函数定义的表面减去噪声分量)。 到目前为止,这
我想使用 rgl 来绘制圆锥体的一部分,如 this web page (点击“3d锥体模型”) 我想指定三个参数(底部半径、顶部半径、高度),然后在 rgl 中绘制一个圆锥体——这可能/容易吗?如何
我使用选项 --disable-libpng 安装了 rgl 包。我尝试生成一个 3d 散点图,但它崩溃了。请帮我解决这个问题 这是我正在运行的代码 library(rgl) open3d() x
从@DWin和@Ben Bolker,我们可以在R中更改scatter3d函数以绘制“更漂亮”(http://stackoverflow.com/questions/8204972/carscatte
我想使用plot3d()( rgl )绘制3维MDS分析的结果。数据和代码如下所示: threedim$points [,1] [,2] [,
当我使用包含文本和深色背景的 OpenGL 输出 rgl 场景时,文本无法正确显示。 示例代码: library(rgl); library(htmlwidgets) open3d() bg3d(co
有没有人在 Rstudio(版本 0.99.489)中使用 R rgl 包(版本 0.95.1201)?每次打电话library(rgl) ,Rstudio 崩溃。 更新 我通过从源代码安装版本 0.
我的系统环境: Mac操作系统10.10.2 X11(XQuartz 2.7.5) R 3.1.2 当我加载并使用“rgl”包时,我收到以下错误消息。 > library("rgl",lib.loc=
我使用 rgl 包为数据的每个因子级别生成了 3D 图,并将它们保存为 png。我的数据有 30 个不同的级别,从而产生了 30 个不同的图像文件。现在我想将这些 png 合并到一个图中。 我会这样显
我正在使用 rgl 包来渲染许多形状,但是我遇到了一个问题,即不同视点的反射/眩光量可能会分散注意力。我确信有一些属性需要改变才能使光源成为环境而不是定向。我尝试使用以下选项: clear3d(typ
尝试在 arch linux x86_64 上为 r 编译 rgl。我只复制了安装的错误部分。这发生在我最近更新 R 之后。知道如何解决这个问题吗? g++ -I/usr/include/R/ -DN
我是一名优秀的程序员,十分优秀!