标签: wireframe

用R中的点阵绘制线框和云

我有一个很好的表面,它代表了具有两个独立变量的回归的非线性多部分回归结果.我想将回归预测值绘制为一个漂亮的3D表面,然后将实际值显示为在表面上反弹的点.这将是绘制回归线并将实际值显示为线周围点的3D版本.我无法弄清楚如何用格子做到这一点.我很高兴在R中使用另一个图形库,但我不知道其他人做3D图.

这是我想要做的简化版本:

library(lattice)
#set up some simplified data
x <- seq(-.8, .8, .1)
y <- seq(-.8, .8, .1)
myGrid <- data.frame(expand.grid(x,y))
colnames(myGrid) <- c("x","y")
myGrid$z <- myGrid$x + myGrid$y
noise <- rnorm(length(myGrid$z),.3,.2)
myGrid$z2 <- myGrid$x + myGrid$y + noise
Run Code Online (Sandbox Code Playgroud)

z是我的光滑表面,z2是我的噪点,大部分位于表面之上.所以表面看起来像这样:

wireframe(myGrid$z ~ myGrid$x * myGrid$y, xlab="X", ylab="Y", zlab="Z")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

点云看起来像这样:

cloud(myGrid$z2 ~ myGrid$x * myGrid$y, xlab="X", ylab="Y", zlab="Z")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

是否有可能在一个格子面板中获得这两个?

r wireframe lattice

9
推荐指数
2
解决办法
8915
查看次数

Mathematica:3D线框

Mathematica是否支持线框图像的隐藏线移除?如果情况并非如此,那么有没有人遇到过这样的方法呢?让我们从这开始:

Plot3D[Sin[x+y^2], {x, -3, 3}, {y, -2, 2}, Boxed -> False]
Run Code Online (Sandbox Code Playgroud)

产量

要创建线框,我们可以:

Plot3D[Sin[x+y^2], {x, -3, 3}, {y, -2, 2}, Boxed -> False, PlotStyle -> None]
Run Code Online (Sandbox Code Playgroud)

产量

我们可以做的一件事就是将所有表面着色为白色.然而,这是不希望的.原因是因为如果我们将这个隐藏的线框架模型导出为pdf,我们将拥有Mathematica用于渲染图像的所有白色多边形.我希望能够以pdf和/或eps格式获得隐藏线移除的线框.


更新:

我已经发布了这个问题的解决方案.问题是代码运行速度很慢.在当前状态下,它无法在此问题中为图像生成线框.随意玩我的代码.我在帖子的末尾添加了一个链接.您也可以在此链接中找到代码

plot wolfram-mathematica wireframe mathematica-8

9
推荐指数
1
解决办法
4844
查看次数

使用表面和线框使用Matplotlib建模小行星

我正在尝试使用plot_surface和模拟小行星plot_wireframe.我对小行星表面上的点有xy和z值.线框精确到小行星的形状,但表面图不适合线框.如何获得适合线框的曲面图或如何使用线框获得3d实体模型?这是我的模型代码:

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm
from matplotlib.mlab import griddata

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
data = np.genfromtxt('data.txt')
x = data[:,0]
y = data[:,1]
z = data[:,2]

ax.plot_wireframe(x, y, z, rstride=1, cstride=1, alpha=1)

xi = np.linspace(min(x), max(x))
yi = np.linspace(min(y), max(y))

X, Y = np.meshgrid(xi, yi)
Z = griddata(x, y, z, xi, yi)


surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
        linewidth=0, antialiased=False) …
Run Code Online (Sandbox Code Playgroud)

python plot wireframe matplotlib geometry-surface

8
推荐指数
1
解决办法
691
查看次数

Wireframing是否过度计划?

37 Signal的Getting Real使我确信线框图和编写功能规范文档是构建Web应用程序和动态网站所不需要的中间人步骤.

这些步骤的开销是否值得重量?在HTML/CSS甚至PhotoShop文档中进行原型设计(因此设计人员可以直接使用它们)比使用Visio这样的软件更好吗?就个人而言,我对后者摇摆不定,但我不确定.

project-planning wireframe

7
推荐指数
1
解决办法
696
查看次数

"素描字体"替代Comic Sans?

在草绘(或模型)工具,如BalsamiqWireframeSketcher Comic Sans用于给出"粗略"的手绘​​外观.我唯一的问题是,我对这种字体太厌倦了.

对替代品的任何建议?

编辑:WireframeSketcher不默认为Comic Sans字体,但它是用于显示"粗略"外观的示例.

fonts wireframe mockups

7
推荐指数
1
解决办法
2165
查看次数

简单的线框格式?

我正在寻找一种用于线框模型的简单文件格式.我知道VRML,u3D等,但这些似乎对我的需求很重要.我的criterea是:

  • 必须有明确的规格.无论是公开还是非常成熟/记录.
  • 我只需要(想要)简单的模型 - 顶点和边.我不想处理面孔或物体.如果格式支持更多,只要我可以忽略它们就没问题.
  • 最终用户工具不是必需的,但会很棒.如果没有,它必须是人类可读的(并且对于简单模型可编辑).
  • 能够注释或至少标记节点会很好(但不是必需的).
  • 我使用的语言无关紧要,但可能的选择是Java/C++和OpenGL

或者我只是更好地将顶点/边缘列表写入文本文件并完成它?

opengl 3d file-format wireframe

5
推荐指数
2
解决办法
2300
查看次数

在 OpenGL ES 2.0 中,除了相邻共面的线之外,如何绘制三角形线框?

我依稀记得在 OpenGL 中看到过一些东西(不是 ES,当我遇到这个时,它仍然是 iPhone 上的 v1.0,这就是我从未使用它的原因)让我指定我的多边形的哪些边被认为是轮廓与那些组成面部的内部。因此,这与整个模型的轮廓(我知道如何做)不同,而是平面的轮廓及其所有三角形基本上混合成一个多边形。例如,在一个由 tris 组成的立方体中,每个面实际上是两个 tris。我想渲染正方形的轮廓,而不是脸上的对角线。六边形也是一样。这需要四个tris,但面部轮廓只需要一个。

现在是的,我知道我可以简单地测试所有边,看看它们是否共享共面,但我可以发誓我记得在定义三网格数据时看到某处,你可以说'这条线勾勒出一个面,而这条线勾勒出一个面一个在一张脸里面。这样在渲染时,你可以设置一个标志,基本上说“给我一个线框,但只有完整面边缘周围的线,而不是组成它们的三边形。”

顺便说一句,我的目标是所有支持 OpenGL ES 2.0 的平台,但我的开发平台是 iOS。同样,这个我很确定最初是在 OpenGL 中,一旦着色器出现,它可能已经贬值,但我什至找不到这个功能的参考来检查是否是这种情况。

我现在知道的唯一方法是拥有一组顶点,但有两组独立的索引……一组用于渲染 tris,另一组用于渲染面的线框。这是一个真正的痛苦,因为我最终手动编写了很多代码,再次,我 99% 确定您可以在渲染线条时定义。

wireframe edges opengl-es-2.0

5
推荐指数
1
解决办法
1万
查看次数

使用晶格和线框在R表面下"看"点

我一直在研究R中一个相当复杂的图表.我有一个带有表面的线框,点分布在X,Y,Z空间中(例如在表面下面和上面).

问题在于情节不会"看起来"像点在表面之下.

我试图弄清楚如何最好地可视化此图表,使点看起来在表面下.线框和云的一些示例代码来自此处: R-List Posting

示例中的代码:

library(lattice)
surf <-
expand.grid(x = seq(-pi, pi, length = 50),
            y = seq(-pi, pi, length = 50))

surf$z <-
with(surf, {
    d <- 3 * sqrt(x^2 + y^2)
    exp(-0.02 * d^2) * sin(d)
})

g <- surf

pts <-   data.frame(x =rbind(2,2,2), y=rbind(-2,-2,-2), z=rbind(.5,0,-.5))

wireframe(z ~ x * y, g, aspect = c(1, .5),
      drape=TRUE,
      scales = list(arrows = FALSE),
      pts = pts,
      panel.3d.wireframe =
      function(x, y, z,
               xlim, ylim, zlim,
               xlim.scaled, ylim.scaled, zlim.scaled,
               pts, …
Run Code Online (Sandbox Code Playgroud)

3d r wireframe points lattice

5
推荐指数
1
解决办法
2068
查看次数

python:绘制线框3D长方体

我想在 python 中绘制 3d 长方体。

输入:center(中心点有3个点)radius(3个半径值,每个维度一个)

理想情况下,它应该是一个线框图(我需要看看里面有什么)。我不太确定如何去做。使用 python matplotlib 或 Mayavi 就可以了。

谢谢!

到目前为止,我已经尝试了以下代码..但这只绘制了一个立方体

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
from itertools import product, combinations
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.set_aspect("equal")

#draw cube
r = [-1, 1]
for s, e in combinations(np.array(list(product(r,r,r))), 2):
    if np.sum(np.abs(s-e)) == r[1]-r[0]:
        ax.plot3D(*zip(s,e), color="b")
plt.show()
Run Code Online (Sandbox Code Playgroud)

这段代码中缺少的是它只是一个立方体(不是长方体)并且它仅以 0 为中心(我实际上想提供中心)

经过一番思考,我想出了这个。这似乎是正确的。如果您认为它不正确,请告诉我...这是无需安装 myavi、pygame、povray 的最简单方法(我很难在 ipython、conda、我的 Windows 笔记本电脑上安装这些)

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
from itertools …
Run Code Online (Sandbox Code Playgroud)

python plot wireframe mayavi

5
推荐指数
2
解决办法
1万
查看次数

线框着色器:如何显示四边形而不是三角形?

我有一个线框着色器,可以在左侧立方体上显示三角形,并希望对其进行更新,使其仅显示四边形,例如在右侧立方体上。

三角形 VS 四边形

这是代码:

Shader "Custom/Wireframe"
{
    Properties
    {
        _WireColor("WireColor", Color) = (1,0,0,1)
        _Color("Color", Color) = (1,1,1,1)
    }
SubShader
{
    Pass
    {
        CGPROGRAM
        #include "UnityCG.cginc"
        #pragma target 5.0
        #pragma vertex vert
        #pragma geometry geom
        #pragma fragment frag

        half4 _WireColor, _Color;

        struct v2g
        {
            float4  pos : SV_POSITION;
            float2  uv : TEXCOORD0;
        };

        struct g2f
        {
            float4  pos : SV_POSITION;
            float2  uv : TEXCOORD0;
            float3 dist : TEXCOORD1;
        };

        v2g vert(appdata_base v)
        {
            v2g OUT;
            OUT.pos = mul(UNITY_MATRIX_MVP, v.vertex);
            OUT.uv = v.texcoord;
            return …
Run Code Online (Sandbox Code Playgroud)

shader wireframe unity-game-engine geometry-shader

5
推荐指数
1
解决办法
6456
查看次数