精华内容
下载资源
问答
  • 简单多边形 P 的核(kernel),K(p)定义如下:K(p)由多边形内部的点构成,这些点与多边形的任何顶点相连所构成的线段完全包含在 P 中。 一个重要的性质是现,K(p)作为半平面的交集,它或者为空或者为完全包含在P...

    基础概念

    简单多边形 P 的核(kernel),K(p)定义如下:K(p)由多边形内部的点构成,这些点与多边形的任何顶点相连所构成的线段完全包含在 P 中。
    一个重要的性质是现,K(p)作为半平面的交集,它或者为空或者为完全包含在P 内的有界凸集。
    在这里插入图片描述
    红色部分。

    半平面,在数学定义下就是
    ax + by + c >= 0
    所控制的一个的半空间。半空间在不同维度下意义不同,如果是2维的话,其实此时ax + by + c >= 0 就是二维中一条直线的一侧。

    此时如果你再看核,其实可以理解为线性规划时得到的一个可行域。

    我们上面说到 如果是2维的话,其实此时ax + by + c >= 0 就是二维中一条直线的一侧。所以直线(也就是决定半平面的直线)切割多边形 ,让直线不断的去切割当前多边形,然后得到新的多边形。

    不难想象,其实结果可能是一个多边形(一定是凸的)、一个线段、空、一个点等等。我们记录顶点的数据来进行描述。

    综上,如果计算半平面的交集,可以使用一个

    • 将直线们极角排序,角度相同的保留下需要的一个
    • 用一个双端队列存储当前半平面交,每次通过判断队首与队尾第一个交点是否满足当前直线来更新
    • 先用队尾判定队首交点是否合法,再用队首判断队尾交点是否合法
    • 最后求出来的半平面交是一个凸多边形

    同理如果计算多边形交,可以将每一个边对应到一个半平面,从而运行半平面交集进行计算。

    Ref

    https://blog.csdn.net/weixin_30345577/article/details/97505934
    https://blog.csdn.net/accry/article/details/6070621

    展开全文
  • OpenGL基本概念

    2018-04-22 11:09:18
    OpenGL基本概念 OpenGL基本概念 顶点(Vertex) 3D图像的最小单位称为点(point)或者顶点vertex。 它们代表三维空间中的一个点并用来建造更复杂的物体。 多边形就是由点构成,而物体是由多个多边形组成。 尽管...

    OpenGL基本概念

    OpenGL基本概念

    • 顶点(Vertex)

      3D图像的最小单位称为点(point)或者顶点vertex。

      它们代表三维空间中的一个点并用来建造更复杂的物体。

      多边形就是由点构成,而物体是由多个多边形组成。

      尽管通常OpenGL支持多种多边形,但OpenGLEs只支持三边形(即三角形)所以即使我们要绘制一个正方形也要把它拆分为两个三角形绘制。

    • 坐标(coordinate)

      默认情况下,以屏幕中心为坐标轴原点。

      原点左方x为负值,右边为正值。原点上方y为正,原点下方为负。垂直屏幕向外为z正,垂直屏幕向里为z负。默认情况下,从原点到屏幕边缘为1.0f,沿各轴增加或减小的数值是以任意刻度进行的–它们不代表任何真实单位,如英尺,像素或米等。你可以选择任何对你的程序有意义的刻度(全局必须保持单位一致,不能一部分使用米,一部分使用像素)。OpenGL只是将它作为一个参照单位处理,保证它们具有相同的距离。

    • 多边形(三角形)

      多边形是由点和边构成的单闭合环。 绘制多边形时需要特别注意顶点的绘制顺序,可以分为顺时针和逆时针。因为方向决定了多边形的朝向, 即正面和背面。避免渲染那些被遮挡的部分可以了有效提高程序性能。默认以逆时针次序绘制顶点的构成的面是正面。

    • 纹理与纹理贴图

      将图像数据应用到一个几何图元时,图像称之为纹理,这种技术或者方法称为纹理贴图。或者说通过一幅图像一个多边形提供细节的技术。纹理有规格,也就是分辨率,在使用的时候需要放大或者缩小使用。这个时候会带来纹理颜色失真,所以需要使用纹理采样滤波器(texture sample filter)或者映像(Mipmap)。另外纹理作为图像数据存储会占用较大空间,使用纹理压缩来(Texture compression)存储纹理数据。

    • 渲染

      渲染是把物体坐标所指定的图元转化成帧缓冲区中的图像。

      图像和顶点坐标有着密切的关系。这个关系通过绘制模式给出。

      常用到得绘制模式有GL_POINTS、GL_LINE_STRIP、GL_LINE_LOOP、GL_LINES、GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN。

    OpenGL 中着色器、渲染管线、光栅化等概念

    • 在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素。

    • 3D坐标转为2D坐标的处理过程是由OpenGL的图形渲染管线(Graphics Pipeline,大多译为管线实际上指的是一堆原始图形数据途经一个输送管道,期间经过各种变化处理最终出现在屏幕的过程)管理的。

    • 图形渲染管线可以被划分为两个主要部分:

      • 第一部分把你的3D坐标转换为2D坐标
      • 第二部分是把2D坐标转变为实际的有颜色的像素。
    • 图形渲染管线接受一组3D坐标,然后把它们转变为你屏幕上的有色2D像素输出.

    • 渲染管线的每个部分:

      • 首先以数组的形式传递3D坐标作为图形渲染管线的输入,用来表示形状,这个数组叫做顶点数据(Vertex Data);顶点数据是一系列顶点的集合。一个顶点(Vertex)是一个3D坐标的数据的集合。

      • 为了让OpenGL知道我们的坐标和颜色值构成的到底是什么,OpenGL需要你去指定这些数据所表示的渲染类型。

      做出的这些提示叫做图元(Primitive),任何一个绘制指令的调用都将把图元传递给OpenGL。

      如:GL_POINTS、GL_TRIANGLES、GL_LINE_STRIP

      • 图形渲染管线的第一个部分是 顶点着色器(Vertex Shader),它把一个单独的顶点作为输入。顶点着色器主要的目的是把3D坐标转为另一种3D坐标.同时顶点着色器允许我们对顶点属性进行一些基本处理。

      • 图元装配(Primitive Assembly)阶段将顶点着色器输出的所有顶点作为输入(如果是GL_POINTS,那么就是一个顶点),并所有的点装配成指定图元的形状.

      • 图元装配阶段的输出会传递给几何着色器(Geometry Shader)。几何着色器把图元形式的一系列顶点的集合作为输入,它可以通过产生新顶点构造出新的(或是其它的)图元来生成其他形状。

      • 几何着色器的输出会被传入光栅化阶段(Rasterization Stage),这里它会把图元映射为最终屏幕上相应的像素,生成供片段着色器(Fragment Shader)使用的片段(Fragment)。在片段着色器运行之前会执行裁切(Clipping)。裁切会丢弃超出你的视图以外的所有像素,用来提升执行效率

      • OpenGL中的一个片段是OpenGL渲染一个像素所需的所有数据。

      • 片段着色器的主要目的是计算一个像素的最终颜色,这也是所有OpenGL高级效果产生的地方。通常,片段着色器包含3D场景的数据(比如光照、阴影、光的颜色等等),这些数据可以被用来计算最终像素的颜色。

      • 在所有对应颜色值确定以后,最终的对象将会被传到最后一个阶段,叫做Alpha测试和混合(Blending)阶段。这个阶段检测片段的对应的深度(和模板(Stencil))值,用它们来判断这个像素是其它物体的前面还是后面,决定是否应该丢弃。这个阶段也会检查alpha值(alpha值定义了一个物体的透明度)并对物体进行混合(Blend)。所以,即使在片段着色器中计算出来了一个像素输出的颜色,在渲染多个三角形的时候最后的像素颜色也可能完全不同。

      • 对于大多数场合,我们只需要配置顶点和片段着色器就行了。几何着色器是可选的,通常使用它默认的着色器就行了。

      • 在OpenGL中,我们必须定义至少一个顶点着色器和一个片段着色器(因为GPU中没有默认的顶点/片段着色器)

    展开全文
  • 一、SVG概念 1.什么是SVG? SVG英文全称为Scalable Vector Graphics,意思为可缩放的矢量图 2.位图和矢量图 在计算机中有两种图形, 一种是位图, 一种是矢量图 2.1 位图: 传统的 jpg / png / gif图都是位图 位图...

    一、SVG概念

    • 1.什么是SVG?
      SVG英文全称为Scalable Vector Graphics,意思为可缩放的矢量图

    • 2.位图和矢量图
      在计算机中有两种图形, 一种是位图, 一种是矢量图

      • 2.1 位图:
        传统的 jpg / png / gif图都是位图
        位图是一个个很小的颜色小方块组合在一起的图片。一个小方块代表1px
      • 2.2 位图的优点和缺点:
        • 优点: 色彩丰富逼真
        • 缺点: 放大后会失真, 体积大
      • 2.3 矢量图
        矢量图是用XML格式(HTML也是XML格式,是特殊的xml)定义, 通过各种「路径」和「填充颜色」来描述渲染的的图片
      • 2.4 矢量图优点和缺点:
        • 优点: 放大后不会失真(因为小方格不是固定死的), 体积小
        • 缺点: 不易制作色彩变化太多的图象

    3.svg的宽高:

    • 默认值:同canvas一样,svg也有默认的宽高、;并且默认宽高同canvas一样也是:300 * 150
    • 修改宽高:同canvas不一样。canvas只能在行内修改。而svg使用css和行内属性都可以修改宽高。

    二、SVG使用方式

    1.SVG常见的四种使用方式

    • 1.1、内嵌到HTML中(直接在HTML的body中绘制)
        <svg width="500" height="500">
            <circle cx="100" cy="100" r="50" fill="transparent" stroke="#000"></circle>
        </svg>
    
    • 1.2、通过浏览器直接打开SVG文件(SVG保存为单独文件,通过浏览器打开)
      svg需要添加属性xmlns(xml name space:命名空间),用于告诉浏览器,此文件不是普通xml文件,而是用来表示SVG图形的。下文为circle.svg文件内的代码
        <svg width="500" height="500" **xmlns="http://www.w3.org/2000/svg"**>
             <circle cx="100" cy="100" r="50" fill="transparent" stroke="#000"></circle>
        </svg>
    
    • 1.3、在HTML的img标签中引用
      通过img标签引用SVG文件
      <img src="circle.svg" alt="">
    • 1.4、作为CSS背景使用
        div{
            width: 500px;
            height: 500px;
            background: url("circle.svg");
        }
        <div></div>
    

    三、SVG绘图

    1.绘制矩形:使用rect标签
    • 主要属性:
      • x/y:绘图位置;
      • width/height:矩形长宽;
      • fill:填充颜色、默认黑色
      • stroke:描边的颜色。
      • stroke-width:描边的宽度
      • rx/ry:圆角:以10为半径画圆
    <svg width="500" height="500">
        <rect x="100" y="100" width="150" height="100" fill="#fea" stroke="#aef" stroke-width="2" rx="10"></rect>
    </svg>
    

    SVG绘制矩形

    2.绘制圆和椭圆

    2.1、 绘制圆:

    • 方法一:使用矩形绘制
    	<svg width="500" height="500">
      	  <rect x="100" y="10" width="100" height="100" rx="50"></rect>
    	</svg>
    
    • 方法二:使用专门的标签绘制
      cx/cy:圆绘制的位置,圆心位置
      r:圆的半径
    	<svg width="500" height="500">
    	     <circle cx="150" cy="200" r="50"></circle>
    	</svg>
    

    2.2、绘制椭圆

    • 方法一:使用矩形绘制
    <svg width="500" height="500">
        <!--绘制椭圆-->
       <rect x="100" y="300" width="100" height="50" rx="50" ry="25"></rect>
    </svg>
    
    • 方法二:使用专门的标签绘制
      cx/cy:椭圆绘制的位置,圆心的位置
      rx/ry:椭圆圆的半径
    	<svg width="500" height="500">
    	   <ellipse cx="150" cy="400" rx="50" ry="25"></ellipse>
    	</svg>
    

    从上到下依次是圆的方法一、方法二结果;椭圆的方法一、方法二的结果

    3.绘制直线、折线、多边形

    3.1、绘制直线

    • x1/y1:起点
    • x2/y2:终点
    • stroke:线条颜色,必须有
    <svg width="500" height="500">
        <line x1="100" y1="100" x2="200" y2="100" stroke="#abf"></line>
    </svg>
    

    3.2、绘制折线

    • points:设置所有折线的点
    • fill:是否填充。默认填充
    <svg width="500" height="500">
        <polyline points="100 150 300 150 300 200" stroke="#abf" fill="none"></polyline>
    </svg>
    

    3.3、绘制多边形

    • 方法一:折线从起点回到终点,就是多边形
    <svg width="500" height="500">
        <polyline points="100 300 300 300 300 350 100 300" stroke="#abf" fill="none"></polyline>
    </svg>
    
    • 方法二:关闭路径
      polygon和polyline差不多,只是会自动关闭路径
    <svg width="500" height="500">
        <polygon points="100 400 300 400 300 450" stroke="#abf" fill="none"></polygon>
    </svg>
    

    从上至下一次是:绘制直线、折线、多边形方法一、多边形方法二

    展开全文
  • 3D的基本概念

    千次阅读 2018-11-16 21:02:13
    一、顶点、多边形、网格  顶点:一个点在空间中的位置,描述具有x、y、z坐标的空间位置。 多边形:通过连接多个顶点形成 。 网格:由一个或多个多边形组成(一般是三角形、四边形) 。3D图形是由3D网格构成的,3D...

    一、顶点、多边形、网格 

    顶点:一个点在空间中的位置,描述具有x、y、z坐标的空间位置。
    多边形:通过连接多个顶点形成 。
    网格:由一个或多个多边形组成(一般是三角形、四边形) 。
    3D图形是由3D网格构成的,3D网格也被称为模型。

    二、材质、纹理、光源 

    纹理:物体的表面上绘制的图案。 
    材质:物体表面各可视属性的结合,可以看出物体是由什么材料组成的。这些可视属性是指表面的色彩、纹理、光滑度、透明度、反射率、折射率、发光度等 。
    光源:材质的表现必然依赖光源,光源不同,表现也会不同,没有光就看不到物体,也就没有材质

    三、变换矩阵 

    顶点在缩放、旋转、平移等变换中的坐标转换矩阵

    四、相机、透视、视口、和投影 

    相机:相当于在3D场景中人的眼睛 
    透视:相机的一种显示效果,比如物体远小近大 
    视口:视觉窗口,由浏览器窗口或canvas决定 
    投影:3D坐标系到2D渲染坐标的映射,影子

    五、着色器 

    承担着将顶点、变换、材质、光源、相机等相互作用生成最终图像的任务

    展开全文
  • 多边形切割

    千次阅读 2018-06-20 14:30:50
    之前基本上遇到的多边形切割问题都是凸多边形问题,而针对凹多边形的切割问题却很少。偶然发现一个做得特别棒的滑动切割的游戏,游戏中主要是使用多边形切割以及多边形碰撞算法。针对多边形切割的实现做了一下研究,...
  • JavaFX的基本概念

    2021-09-19 09:43:22
    形状Shape:是指文本、直线、圆、椭圆、矩形、弧、多边形、折线等。 舞台和场景构建了JavaFX程序的图形界面。 注意:场景Scene中可以包含面板Pane和控件Control,但不能包含形状Shape和图像显示雷ImageView; 面板...
  • 计算机图形学=表示+绘制+交互绘制管线(图形流水线):应用程序阶段---几何处理阶段---光栅阶段绘制概念:主要指将计算机中对象的数字几何模型转化为直观形象的图形或图像形式,是一个数字几何模型的视觉可视化过程...
  • java 面向对象(OOP)基本概念 面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络...
  • GIS基本概念,空间分析

    千次阅读 2019-08-14 15:44:29
    GIS基本概念,空间分析一、GIS基本概念1.1 要素模型(Feature)1.2 矢量数据1.3 空间分析1.3.1 空间查询和空间量算1.3.2 缓冲区分析1.3.3 叠加分析1.3.4 网络分析1.3.5 空间插值二、空间分析2.1空间分析-空间信息的...
  • 3D图形学基础 基本概念

    千次阅读 2019-06-30 10:15:45
    CSAA就是在MSAA基础上更进一步的节省显存使用量及带宽,简单说CSAA就是将边缘多边形里需要取样的子像素坐标覆盖掉,把原像素坐标强制安置在硬件和驱动程序预先算好的坐标中。这就好比取样标准统一的MSAA,能够最高...
  • 4.1 多边形的扫描转换 4.1.1 概述 4.1.2 扫描线算法 4.1.3 其它算法 4.2 区域填充 4.2.1 简单种子填充 4.2.2 扫描线种子填充 4.3 图案填充 4.4 字符
  • 本文内容摘抄于:《计算机图形学的概念》 1、图形主要分为两类,一类是基于线条信息表示的,如工程图、等高线地形图、曲面的线框图等;另一类是明暗图,也就是通常所说的真实感图形; 2、计算机图形学利用计算机建立...
  • 多边形上的最优三角剖分问题也是动态规划经典题目,此类问题基本上都是在一个给定的凸多边形上规划三角形分割,使得剖分后得到的一系列三角形的某种结果最优,比如三角形的面积之和最大(或最小),或者是三角形的...
  • Chapter 01001、Image Processing:图像处理,照片和电视扫描片等...Chapter 02003、图形系统一般使用视频显示器作为其基本的输出设备;004、CRT:阴极射线管,cathode-ray tube;005、Resolution:分辨率,CRT无重...
  • 矩阵基本概念

    千次阅读 2016-11-24 18:38:17
     在几乎所有的几何问题中,向量(有时也称矢量)是一个基本点。向量的定义包含方向和一个数(长度)。在二维空间中,一个向量可以用一对x和y来表示。例如由点(1,3)到(5,1的向量可以用(4,-2)来表示。这里大家要...
  • 基本原理  扫描线多边形区域填充算法是按扫描线顺序(由下到上),计算扫描线与多边形的相交区间,再用要求的颜色显示这些区间的象素,即完成填充工作。    区间的端点可以通过计算扫描线与多边形边界线的交点...
  • GIS基本概念集锦

    2016-08-31 22:18:04
    进行矢量多边形的叠加,其任务是基本相同的,除了必须计算重叠交叉点外,还要定义与之相联系的多边形线的属性。 27、布尔叠加 ——一种以布尔代数为基础的叠加操作。 28、制图建模 ——用以指明应用命令组合来...
  • GIS基本概念

    千次阅读 2012-02-17 10:10:57
    象的基本单位,它描述了一个现实世界中的客观地理实体,如:一条河流、一座桥梁都 可以理解为要素。 栅格数据 栅格数据是从上向下拍摄的地球照片,使用离散单元存储其值,图片的每个像素点都有一个指定值 服务器...
  • 多边形的填充,算法原理,特殊情况的处理办法。
  • 多边形填充

    2014-05-04 10:55:17
    按照图像学书上的讲解,多边形的填充可以采用
  • 一些基本概念…脉动效应需要向两个方向移动,它需要淡入淡出。为了知道应该应用多少“效果”,需要知道两件事。首先,整体效果循环需要多长时间(从完全不透明到完全透明再返回),以及动画在循环中的持续时间。这不是一件...
  • JTS基本概念和使用

    2021-03-05 16:43:27
    }/*** create a polygon(多边形) by WKT *@return*@throwsParseException*/ public Polygon createPolygonByWKT() throwsParseException{ WKTReader reader= newWKTReader( geometryFactory ); Polygon polygon= ...
  • 10.1、真实感图形基本概念  真实感图形绘制是计算机图形学的一个重要组成部分,它综合利用数学、物理学、计算机科学和其它科学知识在计算机图形设备上生成象彩色照片那样的具有真实感的图形。一般说来,用...
  • 拓扑多边形自动构建的一种快速算法2 浙 江 测 绘 2001年拓扑多边形 自动构建的一种快速算法闫浩文 祝方雄(宁波市测绘设计研究院 宁波 315041)摘要:本文提 出了一种基于方位角计算的多 次方位角计算,籍此就可以搜索...
  • DirectX11 Direct3D基本概念

    千次阅读 2015-09-27 19:58:53
    Direct3D基本概念 1. Direct3D概述 Direct3D是一种底层绘图API(application programming interface,应用程序接口),它可以让我们可以通过3D硬件加速绘制3D世界。从本质上讲,Direct3D提供的是一组软件接口,...
  • (1)建立GIS多边形拓扑关系的概念顺时针方向构多边形所谓顺时针方向构多边形是指多边形在链的右侧(图a),多边形在闭合曲线内。逆时针方向构多边形是指多边形在链的左侧(图b),多边形在闭合曲线外。最靠右边的链最靠...
  • 多边形扫描线填充算法(vs2010 c++)

    千次阅读 2019-04-26 21:02:47
    扫描线填充算法的基本原理: 用水平扫描线从上到下(或从下到上)扫描由多条首尾相连的线段构成的多边形,每根扫描线与多边形的某些边产生一系列交点。将这些交点按照x坐标排序,将排序后的点两两成对,作为线段的...
  • Zookeeper——1、Zookeeper基本概念

    千次阅读 2016-11-30 22:03:01
    其中圆形节点可以含有子节点,多边形节点不能含有子节点。一个节点对应一个应用,节点存储的数据就是应用需要的配置信息。 ②可以构建集群。一般zookeeper集群通常由一组机器构成,一般3~5台机器就可以组成一个...
  • 多边形求交并差

    千次阅读 2017-11-28 15:53:31
    代码:Github:team79/PolygonOverlayAnalysis基本概念介绍多边形交并差计算的算法的相关证明过程是很繁琐,因此在这里将直接给出算法所需的概念以及算法所用到的一些性质。具体的相关证明过程在ZHU Ya-Yin[1]论文中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,428
精华内容 4,571
关键字:

多边形的基本概念