Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用彩色数据将等高线剖分成二维网格

用彩色数据将等高线剖分成二维网格
EN

Stack Overflow用户
提问于 2022-09-29 05:23:13
回答 2查看 136关注 0票数 0

我正在使用Javascript库'Tess2‘来三角化一系列轮廓。

https://github.com/memononen/tess2.js/blob/master/src/tess2.js

它生成一个由多个轮廓组成的任意形状的完美二维网格:

等高线由一系列点组成(固体填料按负向缠绕顺序,孔按正缠绕顺序)。

然而,该算法输出的三角形不再与轮廓及其填充颜色相关联。

我将如何修改Tess2 (或任何其他可以记录等高线的javascript库),以允许在生成的三角形中保留颜色数据?

我试着到处找,却找不到解决办法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-30 06:29:46

经过多次失败的尝试,我终于到达了那里。

我一直在努力尝试处理大量的轮廓在同一时间与单一的镶嵌通行证。我试着编辑镶嵌库,让每一半边缘保留原始的轮廓ID。我有几个尤里卡时刻,它似乎终于起作用了,但当我对它进行压力测试,发现它不够完美时,我感到失望。

但事实证明我一直非常愚蠢..。我所要做的就是用一个特定的填充对每个轮廓进行分组,然后tesselate将每一组分别进行分组。

我不明白,对于每一个内部轮廓填充,总是有一个相反的轮廓,有效地封闭外部轮廓循环。例如,要用一个蓝色框表示一个红色框,就会有2个红色等值线和1个蓝色。我以为它只能用一个蓝色轮廓和一个红色表示,而蓝色也代表红色轮廓的洞,所以独立处理每一组颜色的轮廓对我来说是没有意义的。

当我终于意识到这一点时,我就明白了。

我已经在github上发布了一个解决方案,但我不确定它对任何人有多大的用处:

https://github.com/hedgehog90/triangulate-contours-colour-example

我已经包含了一个非常全面的导出脚本,用于将等高线(包括曲线)转换为Adobe /动画的多边形路径,这对某些人可能很有用。

我将在此基础上编写OBJ出口商,这样我就可以在3D引擎中表示矢量图形。

票数 0
EN

Stack Overflow用户

发布于 2022-09-29 06:00:42

根据我在源代码中看到的,tessalation函数在返回的对象中包含一个顶点索引:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    Tess2.tesselate = function(opts) {

        ...

        return {
            vertices: tess.vertices,
            vertexIndices: tess.vertexIndices,
            vertexCount: tess.vertexCount,
            elements: tess.elements,
            elementCount: tess.elementCount,
            mesh: debug ? tess.mesh : undefined
        };

您可以为每个顶点创建一个带有颜色的新数组,然后从对象中使用vertexIndices获取顶点的颜色。

如果您希望每个面有一个颜色,您只需要生成一个像上面这样的数组,这意味着为数组中的每个顶点设置相同的顶点颜色。您还希望将所有这些数据包装在某种convienent对象或类中。

编辑

结果表明,tesselation算法将顶点合并在同一位置,这意味着它完全重组了顶点数组。有一种解决方案是显式地不将不同的等高线与重叠顶点合并:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Tess2.tesselate({ contours: yourContours, elementType: Tess2.BOUNDARY_CONTOURS });

这应该保留原始的顶点,但是不是按原来的顺序,使用vertexIndices来获得这些顶点的原始位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73896300

复制
相关文章
彩色纹理网格
彩色顶点网格的顶点分辨率和色彩分辨率一样,当网格顶点比较少的时候,色彩信息会损失很多,如下图2所示。彩色贴图网格的色彩分辨率取决于纹理贴图的分辨率,与网格顶点分辨率无关,如图3所示,同样的网格,纹理贴图方式可以存储高于网格分辨率的色彩信息。
NT4.4
2019/10/15
1.7K0
彩色纹理网格
数据科学 IPython 笔记本 8.15 Matplotlib 中的三维绘图
Matplotlib 最初设计时只考虑了二维绘图。在 1.0 版本发布时,一些三维绘图工具构建在 Matplotlib 的二维显示之上,结果是一组方便(但是有限)的三维数据可视化工具。通过导入mplot3d工具包来启用三维绘图,它包含在主要的 Matplotlib 安装中:
ApacheCN_飞龙
2022/05/07
1.7K0
数据科学 IPython 笔记本 8.15 Matplotlib 中的三维绘图
用 Python 生成彩色动态二维码
0 前言 最近在忙别的事情,也没有怎么更新,我的错。 下面来介绍一下怎么通过一个有趣的库生成二维码,生成彩色的,动态的二维码都不是事。 1 环境说明 Win10 系统下 Python3,编译器是
伪君子
2018/05/11
1.7K0
通过CGAL将一个多边形剖分成Delaunay三角网
对于平面上的点集,通过Delaunay三角剖分算法能够构建一个具有空圆特性和最大化最小角特性的三角网。空圆特性其实就是对于两个共边的三角形,任意一个三角形的外接圆中都不能包含有另一个三角形的顶点,这种形式的剖分产生的最小角最大。
charlee44
2020/03/19
3.1K0
用Python创建动态彩色二维码
平常我们看到的二维码都是黑白两种颜色,且形状不太好看。本文会教大家把你的文件链接变成漂亮的二维码,微信扫一扫二维码就可以进入你的文件,以下是Python中的处理步骤。
阿黎逸阳
2020/09/08
7800
用Python创建动态彩色二维码
【MATLAB】三维图形绘制 ( 三维平面图 | 二维网格 | meshgrid 函数 | 绘制网格 | mesh 函授 | 绘制平面 | surf 函数 | 绘制等高线 | contour 函数 )
之前使用 plot 和 plot3 绘制的都是线图 , 给定若干个点的向量 , 绘制这些点 , 然后将这些点使用直线连接起来 , 组成了线图 ;
韩曙亮
2023/03/29
6K0
【MATLAB】三维图形绘制 ( 三维平面图 | 二维网格 | meshgrid 函数 | 绘制网格 | mesh 函授 | 绘制平面 | surf 函数 | 绘制等高线 | contour 函数 )
比较规则网格上插值不规则数据的等高线图。
import matplotlib.pyplot as plt import matplotlib.tri as tri import numpy as np np.random.seed(19680801) npts = 200 ngridx = 100 ngridy = 200 x = np.random.uniform(-2, 2, npts) y = np.random.uniform(-2, 2, npts) z = x * np.exp(-x**2 - y**2) fig, (ax1, a
裴来凡
2022/05/28
5030
比较规则网格上插值不规则数据的等高线图。
matlab—进阶绘图
这里我们要讲的是画一些与对数(log)有关的图像,这里的log,既可以是图像是log,又可以是坐标轴是log,我们接下来用一个例子来说明
mathor
2018/07/24
2.5K0
matlab—进阶绘图
Python进阶之Matplotlib入门(七)
Matplotlib是Python的画图领域使用最广泛的绘图库,它能让使用者很轻松地将数据图形化以及利用它可以画出许多高质量的图像,是用Python画图的必备技能。对于这个教程,大家最好亲自码一遍代码,这样可以更有收获。
HuangWeiAI
2019/11/23
1.3K0
CGAL功能大纲
Computational Geometry Algorithms Library,CGAL,计算几何算法库。使用C++语言编写的,提供高效、可控的算法库。广泛应用于计算几何相关领域,如地理信息系统、计算机图形学、计算机辅助设计、信息可视化系统、生物医学等。
用户3519280
2023/07/08
1.3K0
【MATLAB】三维图形绘制 ( 绘制网格 + 等高线 | meshc 函数 | 绘制平面 + 等高线 | surfc 函数 )
meshc 函数参考文档 :https://ww2.mathworks.cn/help/matlab/ref/meshc.html
韩曙亮
2023/03/29
1.3K0
【MATLAB】三维图形绘制 ( 绘制网格 + 等高线 | meshc 函数 | 绘制平面 + 等高线 | surfc 函数 )
【数据网格】应用数据网格
逐步从单一数据湖转移到分散的 21 世纪数据网格。 (另请查看后续文章:三种数据网格)
架构师研究会
2022/09/26
1.4K0
【数据网格】应用数据网格
利用matlab画三维图像_使用变身卡进行擂台切磋
除了mesh函数meshc函数还能在xy平面上绘制曲面的等高线,meshz函数还能在xy平面上绘制曲面的底座
全栈程序员站长
2022/11/07
1.3K0
利用matlab画三维图像_使用变身卡进行擂台切磋
Matlab基本语法6
三维数据可视化 1.三维图形 plot3(x,y,z):其中参数x,y和z都是具有相同的维数的向量或者矩阵 mesh()绘制三维网格图 surf()绘制彩色的三维曲面图 2.特殊三维绘图 cylind
瓜大三哥
2018/02/26
1.1K0
Matlab基本语法6
数据科学 IPython 笔记本 8.7 密度和等高线图
有时,使用等高线或颜色编码的区域,在二维中显示三维数据是有用的。有三个 Matplotlib 函数可以帮助完成这个任务:`plt.contour用于等高线图,plt.contourf用于填充的等高线图,plt.imshow``用于显示图像。本节介绍使用这些的几个示例。 我们首先为绘图配置笔记本,并导入我们将使用的函数:
ApacheCN_飞龙
2022/05/07
1.6K0
数据科学 IPython 笔记本 8.7 密度和等高线图
MATLAB绘制三维图形z=5_plot3用法
mesh(X,Y,Z)的用法,其中X是n维向量,Y是m维向量,Z是m*n维的矩阵:
全栈程序员站长
2022/09/27
2.1K0
python将整数均分成N等分
在python中,需要将整数均分成N等分。python divide integers N equal parts sum
机器学习和大数据挖掘
2019/07/01
3.7K0
将列表分成指定长度的列表
在工作或参加面试过程中,经常遇到将一个列表,按指定长度分割成多个列表的问题。详细实现过程,看如下具体实例:
TalkPython
2019/05/24
2.9K0
Matlab-Octave中绘制网格图和等高线:mesh 和 surf
参考http://huzhyi21.blog.163.com/blog/static/1007396201061052214302/
用户4645519
2020/09/07
1.3K0
Matlab-Octave中绘制网格图和等高线:mesh 和 surf
Python Matplotlib 绘图使用指南 (附代码)
大多数人不会花大量时间去学 matplotlib 库,仍然可以实现绘图需求,因为已经有人在 stackoverflow、github 等开源平台上提供了绝大多数画图问题的解决方案。我们通常会使用 google 来完成绘图需求。至少我是这样。
AI研习社
2018/07/26
1.8K0
Python Matplotlib 绘图使用指南 (附代码)

相似问题

三角剖分成网格

24

网格二维三角剖分

12

用数值网格绘制二维等高线的最好方法

347

用OpenGL绘制彩色网格?

14

用离散彩色标度绘制填充等高线图

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文