首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OpenGL 学习系列---基本形状的绘制

在之前的一篇博客中,讲述了 OpenGL 基础绘制流程 及相关的代码,其中关于 OpenGL 程序编译部分都是可以在其他项目中接着复用的,接下来会讲到如何去绘制其他的基本图元。...绘制矩形 显然,OpenGL 是没有提供矩形这一基本图元的,但是我们可以用两个三角形来拼接成一个矩形。 OpenGL 中提供了一个绘制类型叫做三角形扇,如下图所示: ?...在上图中,矩形的每一条边上的顶点都被两个三角形使用了,而且中心的顶点被所有四个三角形使用了。...一个三角形扇以一个中心顶点作为起始,使用相邻的两个顶点创建第一个三角形,接下来的每个顶点都会创建一个三角形,围绕起始的中心点按扇形展开,为了使扇形闭合,我们需要在最后重复第二个点。...圆形的顶点数据也分为了三部分了,以原心作为我们的中心点,中间的 360 个点用来绘制三角形,最后一个点使得我们的图形闭合。 在绘制时依旧使用三角形扇的形式来绘制。

1.8K40
您找到你想要的搜索结果了吗?
是的
没有找到

电信网络拓扑图自动布局

上图是 circular 圆形布局的效果,可以看出在较复杂的布局上,可以结合连线呈现一个漂亮的布局结果。 ?...plugin/forcelayout/ht-forcelayout-guide.html 现在问题来了,上面的两种布局方式其实还不能完全满足用户的需求,很多用户还有根据特定的形状去布局节点,比如,多个节点如何围绕一个节点做椭圆状的均匀分布...,多个图元如何沿着某条曲线做均匀分布。...上面的例子中,可以看到节点间的连线靠近中心的点事在椭圆边缘上的,而不是在椭圆的中心,这个又是怎么处理的呢?...这边就涉及到了一个拓展的节点类型,这边将它命名为 BusEdgeType,就像 bus 的路线一样,变化多段,连线适应各种不同线条的变化,拖动节点的时候,线条的两端位置动态变化,时刻寻找着最优的连线路径

2.2K80

电信网络拓扑图自动布局

上图是 circular 圆形布局的效果,可以看出在较复杂的布局上,可以结合连线呈现一个漂亮的布局结果。 ?...plugin/forcelayout/ht-forcelayout-guide.html 现在问题来了,上面的两种布局方式其实还不能完全满足用户的需求,很多用户还有根据特定的形状去布局节点,比如,多个节点如何围绕一个节点做椭圆状的均匀分布...,多个图元如何沿着某条曲线做均匀分布。...上面的例子中,可以看到节点间的连线靠近中心的点事在椭圆边缘上的,而不是在椭圆的中心,这个又是怎么处理的呢?...这边就涉及到了一个拓展的节点类型,这边将它命名为 BusEdgeType,就像 bus 的路线一样,变化多段,连线适应各种不同线条的变化,拖动节点的时候,线条的两端位置动态变化,时刻寻找着最优的连线路径

1.9K80

机器人制证系统大屏可视化 0x01项目背景0x02设计稿0x03 任务分解实现0x03 场景生成

绘制墙体 墙体的绘制包括两部分,一个是支撑柱,一个是墙体的路径。 这两部分都比较简单,支撑柱就是一个矩形方块。 墙体本身就是一个段路径路径可以使用canvas得path功能进行绘制。...用图元编辑很方便实现: 首先拖拽一个圆形到编辑区,然后设置其只显示边框,不显示填充,并使用阴影模糊效果。 拖拽另外一个圆形到编辑区,设置其不显示边框,但显示填充,并使用阴影模糊效果。...同时设置其尺寸比第一个圆形要小。 拖拽一条线段(或勾选圆的扇形绘制),连接两个圆形。 最终编辑出来得图元效果如下,下面是放大得效果 ? 上述编辑好的图元,在场景编辑区直接使用即可。...可以把图表区的内容分成几个部分: 左右括号 圆形图表 文字 (包括文字前面的方块,文字,下划线等) 括号的绘制 前面说过了图元编辑模块,其实括号可以通过图元编辑做成一个图元。...然后把这几个图形按照一定的顺序组织起来,就可以得到相关图表了,中心点对齐的功能让调整位置很方便。 ? 有读者可能会会说,这个是一个固定的图,不能对接数据,实现动态效果?

1K20

电信网络拓扑图自动布局

上图是 circular 圆形布局的效果,可以看出在较复杂的布局上,可以结合连线呈现一个漂亮的布局结果。 ?...plugin/forcelayout/ht-forcelayout-guide.html 现在问题来了,上面的两种布局方式其实还不能完全满足用户的需求,很多用户还有根据特定的形状去布局节点,比如,多个节点如何围绕一个节点做椭圆状的均匀分布...,多个图元如何沿着某条曲线做均匀分布。...上面的例子中,可以看到节点间的连线靠近中心的点事在椭圆边缘上的,而不是在椭圆的中心,这个又是怎么处理的呢?...这边就涉及到了一个拓展的节点类型,这边将它命名为 BusEdgeType,就像 bus 的路线一样,变化多段,连线适应各种不同线条的变化,拖动节点的时候,线条的两端位置动态变化,时刻寻找着最优的连线路径

2.2K20

RANSAC

举个例子,如下图所示,这些点是观测数据,给定的数学模型是圆形和直线,我们想从这些观测数据中找出圆形和直线,并且估计出它们的几何参数。...---- 三维点云基本图元检测 下面我们介绍一个RANSAC算法的应用,检测三维点云的基本图元。基本图元包括:平面,球面,圆柱面和圆锥面。...用这三个点分别估计出四类图元的参数。 3. 评价估计出的图元:计算图元的支撑集,也就是点云里有多少个点在图元上。取最大支撑集对应的图元类型,并且评估它是否可接受 4....三个点如果距离太近,会使得图元参数估计不稳定;距离太远的话,可能它们就分布在不同的图元上了。 图元参数的估计:三个带法线的点,确实可以估计出图元的参数。...如何从三个点出发,稳定的估计出高质量的图元参数,也是一个问题。 评估图元是否可接受:一个采样样本估计出了一个候选图元,那么到底是否该接受它呢?举个例子,比如一个圆柱面。

82150

.Net 基于GDI+的图件绘制平台的设计与实现(一)

GDI+平台提供了直线、矩形、折线、多边形、椭圆、圆形、曲线、文本、图片等几何形状基元的画法,整个图形画面由若干几何形状基元组合而成。...GDI+中使用路径来表示二维图形,路径可由任意数据的几何形状基元组成,使用全局坐标。一个图形画面可表示为路径的几何。...绘图平台绘图库架构 一、图元 图形文件最小的组成和编辑单位,包括对GDI+平台直接提供的直线、矩形、折线、多边形、椭圆、文本、图像等基本几何形状装饰而来的基本图元,以及由各个基本图元组合而成的组合图元...二、图元Painter对象 每种图元都提供一个对应的Painter对象,用来对图元对象的生命周期进行管理,还可以控制图元绘制顺序,可对图元进行组合,以形成复杂树状关系的图元组合库。...主要包括下面几个内容: 图元shape创建与管理 子图元的Painter集合 图元绘制的属性相关设置 图元右键上下文菜单事件处理,及弹出窗口UI设置 图元创建中的事件处理 ? ?

1K20

图形管线

中间涉及的流程可以参考下图: image.png 光栅化 光栅化按照给定的图元定点坐标,生成对应的像素,中间也会进行插值。这儿按照几个场景分别看下。 画线 在需要画线的时候,输入是线的起始点和终点。...候选像素点是(x+1,y),(x+1,y+1),那么中点就是(x+1,y+0.5),如果该点在线段下面,说明线段更偏上一些,那么候选像素选(x+1,y+1),反之选(x+1,y)。...如下图所示: image.png 图中就是两个一样大小的圆形,结果远处的圆形把近处的挡住了,这样是不合理的。...在片段混合阶段存储每个像素点的最近图元的颜色信息。这样就不依赖图元的绘制顺序了。 那这儿就涉及到深度值的表示问题,一般是用整数表示,那么就有一个精度问题,可以简单看下。...好处是运算量小,不过效果可能不会很好,由于是按照图元顶点来的,那么小于图元的细节就处理不了了。如下图所示: image.png 可以看到高光处有明显的三角形痕迹。

64820

CorelDRAW 2019 软件应用项目(五)

让背景颜色有更多的选择,不需要依靠界面,最右边的色块,填充仅限的那几种颜色 三.绘图 椭圆工具,按住 ctrl 画正圆,在对象菜单中,选择对齐与分布选项,快捷键为 A,选择对页面居中,就可以得到在镇中心的圆...如下图所示 出现第三个把手并且有椭圆形的运动轨迹,这代表你选中的渐变填充,是由中心向外填充拖动圆形把手可以更改最外面椭圆形路径大小,这个椭圆形就是从中心点填充的,渐变向外扩张,最终碰触到椭圆虚线界线,...它是圆形把手的运动路径,你可以理解为有两个方形颜色产生的渐变围绕着一个方形为圆心,袁心和空心圆把手为半径进行旋转,以至于原本填充的条形渐变经过圆形把手沿路径旋转后形成的中心向外渐变,椭圆虚线界限最远端可达另一个色块和圆形把手处当圆心与另一个色块和圆心与圆型...我们会发现,如果新建一个由中心向外渐变的交互式填充后它默认的两根线夹角为 90 度,默认的就是正圆渐变。 在这里切换回线性渐变填充,调整两色款颜色,内部圆形渐变,也是同样做法。...首先,我们用交互式填充工具,把外面的圆形填上渐变,然后选择里面的小圆,再点击交互式填充,点击复制填充,会有一个黑色箭头,你将黑色箭头移到,已经用交互式填充工具填充后的图形,就可以,让你里面选中的小圆,拥有黑箭头点击图形的渐变

1.7K10

橙色优学教案 | AI设计抽象几何标志

几何标志考.jpg 2 钢笔工具绘制路径 钢笔工具绘制曲线,注意起始点要紧靠在中间圆角边上,绘制出一条以后,沿着中心点,旋转复制出其他3条。...AI设计抽象几何标志考.jpg 3 执行布尔运算 将所有线条选中,打开路径查找器,点击分割,将图形进行分割处理,然后取消图形的分组,只选中其中一个图形,等比缩小,再围绕中心点,旋转3个图形出来,形成一个圆形图案...何标志考.jpg 5 绘制路径应用画笔 在四分之一图形内绘制出一条弯曲路径,选择路径后,点击画笔中刚刚建立好的艺术画笔,应用刚刚建立好的竖条形状。...计抽象几何标志考.jpg 将应用后的路径形态进行扩展外观,然后在选择扭曲和变换里的扭转,值调整为15度,确定后,图形就有部分扭曲效果出来了。...qq几何标志考.jpg 6 最终效果 将四分之一的图形选中至于最顶层,和竖条图形一起选中,ctrl+7制作剪切蒙板,然后再将图形围绕中心点旋转一周并复制出其余三个图形,这样图形基本绘制完成,最后将图形填充颜色

93830

PS基础操作及常用快捷键

把不同的图片放到同一个图层下:选中移动工具箭头,鼠标按住图像拖动到要放的图层或背景下 如: ? 新建图层:右下角点击如下 ? 4....选框绘制技巧 ALT+鼠标滚轮:放大或缩小画布 绘制正图形:先拖拽选框,再按shift键 从鼠标点击处为中心进行选框绘制:先拖拽选框,再按alt键 从鼠标点击处为中心进行选框绘制正图形:先拖拽选框,...首先新建图层,在填充前景色为黑色,再用选图工具 注意:画好一个圆形图形时,del掉,再鼠标直接拖动蚂蚁线的同时按住shift键移动,这样两个圆形就会处在同一水平线上。 ?...案例2:画一个“爱心”,由两个圆形和一个正方形构成 前景色红色 ? ?...使用选图工具的固定大小,圆形和正方形都设置为宽高为200px的大小,每个图像占一个图层,分别把两个圆形的图层拖到正方形的两边即可画出“爱心”。

1.8K10

不编程,拖拖鼠标图表自己动起来!来自图形学大牛陈宝权弟子,已获ACM CHI最佳论文荣誉提名

他们的第一个成果是直接通过Canis编程来实现动画的在线平台: 该平台借助数据对图元 (比如一个条形图中每一个条形就是一个图元)进行管理、定义动画时序结构和动画效果。...其中“id”与“class”为图元提供索引并描述图元类型(例如矩形、圆形、自由路径等); 而 “datum” 则包含了该图元所对应的源数据内容(下图最左)。...通过它们,Canis就能自动建立好图元之间的联系,之后我们就可以定义图元的动画效果了。 由于Canis解耦了编码与实现逻辑,用户只需要定义做什么,而不需要定义如何做。...CAST的做法是在用户选择少量图元之后,根据视觉通道的感知有效性,对已选和未选图元所对应的数据属性编码的视觉通道进行对比。...作者介绍 葛彤,即将从山东大学博士毕业,为Canis&CAST这两篇论文的一作; 导师为陈宝权(北京大学教授,前沿计算研究中心执行主任,IEEE Fellow)和汪云海(山东大学计算机学院教授)。

97020

学废了系列 - WebGIS vs WebGL图形编程

路网寻址的需求主要是用在路径规划和导航场景下,这两种场景有一个共同点:起点和终点是确定。...比如以某个点为中心在指定半径的圆形区域内检索特定类型的POI。或者在地图上自定义指定几个点,然后在以这些点为顶点的不规则图形内进行POI检索。...比如指定步行最长距离是5公里,起点在中关村科贸大厦,按照以下步骤进行: 首先以科贸大厦为圆心,5公里为半径,检索圆形区域内的所有指定类型的POI,得到一个list; 然后依次以list中的每个POI为终点...,科贸大厦为起点进行路径规划,得到所有POI与起点的真实地理距离,筛选出小于等于5公里的POI。...事实上,前文提到的两种POI检索场景(圆形和自定义多边形)都是逆向解法。

1.8K20

机器人编程趣味实践19-武林秘籍(文档)

这将完成动态路径规划、计算电机速度、避开障碍物和结构恢复行为。 了解本项目的相关项目、机器人使用、ROS1对比、维护者等更多信息,请参见关于和联系方式。...通过圆形和任意形状的机器人为 SE2 碰撞检查提供独特的支持。...具有以下工具: 加载、提供和存储地图(地图服务器) 在地图上定位机器人 (AMCL) 围绕障碍物规划从 A 到 B 的路径(Nav2 Planner) 控制机器人跟随路径...NavFn 使用 A* 或 Dijkstra 算法计算从初始位置到目标姿势的最短路径。 DWB 将使用 DWA 算法计算跟踪路径的控制工作,并为轨迹比较器提供几个自定义插件。...通过抓取生成分析环境并与之交互 逆运动学:求解给定姿势的关节位置,即使在过度致动的手臂中 控制:通过通用接口对低级硬件控制器执行时间参数化联合轨迹 三维感知:使用 Octomaps 连接深度传感器和点云 碰撞检测:使用几何图元

55630

​Figma教程汇总

专业或团队版无限制 Figma 考虑了灾难恢复,所有的基础架构都分布在 3 个 AWS 数据中心,其中任何一个数据中心意外发生故障,其它数据中心将继续工作。 那它有 Sketch 快么?...其他链接: https://www.figma.cool/learning-paths 要想在 figma 中创建一个圆形(或其他形状)蒙版的图片,可按以下操作: 1、创建目标形状,可以是圆形、矩形、三角形等...点击上方菜单中的【Use as Mask】蒙版按钮; 4、点击左侧面板中的图片图层,并选中图片,拖动图片图层移至图形图层的上方(此时你的图片可能会消失掉,但放心,图片图层还在,所以不是真的消失了)然后在中间的画板中移动图片到目标效果的位置即可

1.1K31

SwiftUI:使用 CGAffineTransform 和奇偶填充来变换形状

为了演示这两种方法,我们将用几个旋转的椭圆形花瓣创建一个花朵形状,每个椭圆形围绕一个圆放置。这背后的数学方法相对简单,只有一个需要注意点:CGAffineTransform以弧度而非角度来度量角度。...旋转变换的移动量等于绘制空间宽度和高度的一半,因此每个花瓣都以我们的形状为中心。 为花瓣创建一个新路径,该路径等于特定大小的椭圆。 将变换应用到该椭圆,以便将其移到适当位置。...好了,足够多的讨论,现在将此形状添加到您的项目中: struct Flower: Shape { // 花瓣移离中心多少距离 var petalOffset: Double = -20...根据循环旋转当前的花瓣 let rotation = CGAffineTransform(rotationAngle: number) // 将花瓣移到我们视野的中心...一旦开始拖动offset和width滑块,您应该就能清楚地看到代码的工作原理——它只是一系列旋转的椭圆,呈圆形排列。 这本身就是有趣的,但是只要稍作改动,我们就可以从有趣升华。

1.4K30

原 荐 快速开发 HTML5 WebGL 的

node.r3(0, 0, Math.PI/4);//设置节点旋转 这个旋转的角度是有学问的,跟下面我们要设置的拖拽放置的位置有关系 node.s('3d.movable', false);//设置节点在...我将加载 Palette 面板中的图元函数封装为 initPalette,定义如下: function initPalette() {//加载palette面板组件中的图元 var arrNode...“组”里面,然后向“组”中添加图元即可 palette.dm().add(arrNode[i]);//向palette面板组件中添加group图元 arrNode[i]....arrNode[i]);//创建palette上节点及设置名称、显示图片、父子关系 } } 我在 setPalNode 函数中做了一些名称的设置,主要是想要根据上面 initPalette 函数中我传入的路径名称来设置模型的名称以及在不同文件在不同的文件夹下的路径...node.setName(shape3d);//设置节点名称 node.setElevation(node.s3()[1]/2);//控制Node图元中心位置所在

1.6K30

Redis 实战篇:通过 Geo 类型实现附近的人邂逅女神

附近的人 也就是常说的 LBS (Location Based Services,基于位置服务),它围绕用户当前地理位置数据而展开的服务,为用户提供精准的邂逅服务。...” 以用户为中心,给定一个 1000 米作为半径画圆,那么圆形区域内的用户就是我们想要邂逅的「附近的人」。 将经纬度存储到 MySQL: ?...” 多出来的这部分区域内的用户,到圆点的距离一定比圆的半径要大,那么我们就计算用户中心点与正方形内所有用户的距离,筛选出所有距离小于等于半径的用户,圆形区域内的所用户即符合要求的附近的人。...所有的地图元素坐标都将放置于唯一的方格中。方格越小,坐标越精确。然后对这些方格进行整数编码,越是靠近的方格编码越是接近。...编码之后,每个地图元素的坐标都将变成一个整数,通过这个整数可以还原出元素的坐标,整数越长,还原出来的坐标值的损失程度就越小。对于「附近的人」这个功能而言,损失的一点精确度可以忽略不计。

1.3K20
领券