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

画布JS如何获得多边形形状的高度和宽度?

画布JS是一个用于在网页上绘制图形的JavaScript库。要获得多边形形状的高度和宽度,需要先确定多边形的顶点坐标。然后,通过计算顶点坐标的最大和最小值,可以得到多边形的边界框。最大值减去最小值即可得到多边形的高度和宽度。

以下是一个示例代码,展示如何使用画布JS获得多边形形状的高度和宽度:

代码语言:txt
复制
// 创建画布
var canvas = document.createElement('canvas');
document.body.appendChild(canvas);

// 设置画布大小
canvas.width = 800;
canvas.height = 600;

// 获取画布的上下文
var ctx = canvas.getContext('2d');

// 定义多边形的顶点坐标
var vertices = [
  { x: 100, y: 100 },
  { x: 200, y: 200 },
  { x: 300, y: 150 },
  // 添加更多顶点坐标...
];

// 绘制多边形
ctx.beginPath();
ctx.moveTo(vertices[0].x, vertices[0].y);
for (var i = 1; i < vertices.length; i++) {
  ctx.lineTo(vertices[i].x, vertices[i].y);
}
ctx.closePath();
ctx.stroke();

// 计算多边形的边界框
var minX = Infinity;
var minY = Infinity;
var maxX = -Infinity;
var maxY = -Infinity;

for (var i = 0; i < vertices.length; i++) {
  var vertex = vertices[i];
  minX = Math.min(minX, vertex.x);
  minY = Math.min(minY, vertex.y);
  maxX = Math.max(maxX, vertex.x);
  maxY = Math.max(maxY, vertex.y);
}

// 计算多边形的高度和宽度
var width = maxX - minX;
var height = maxY - minY;

console.log('多边形的宽度:', width);
console.log('多边形的高度:', height);

以上代码中,我们首先创建了一个画布,并设置了画布的大小。然后,通过定义多边形的顶点坐标,并使用moveTolineTo方法绘制多边形。接着,通过遍历顶点坐标数组,找到最小和最大的x、y值,从而计算出多边形的边界框。最后,通过最大值减去最小值,得到多边形的高度和宽度。

请注意,以上示例中并未提及具体的腾讯云产品和产品介绍链接地址,因为该问题与云计算领域的专业知识和腾讯云产品无直接关联。如需了解腾讯云相关产品,请参考腾讯云官方文档或咨询腾讯云官方支持。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

js获得浏览器高度宽度 参数

document.documentElement.clientHeight -->浏览器高度 document.documentElement.scrollHeight 全文高度 document.documentElement.scrollTop..." 网页可见区域高:"+ document.body.clientHeight; s += " 网页可见区域宽:"+ document.body.offsetWidth + " (包括边线滚动条宽...==> 页面对象宽度(即BODY对象宽度加上Margin宽) document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高)...==> 页面对象高度(即BODY对象高度加上Margin高) Opera为: document.documentElement.clientWidth ==> 页面对象宽度(即BODY对象宽度加上...Margin宽)document.documentElement.clientHeight ==> 页面对象高度(即BODY对象高度加上Margin高) //获取滚动条高度 function getPageScroll

6.1K41

如何在onCreate中获取View高度宽度

如何在onCreate中获取View高度宽度 在开发过程中经常需要获取到View宽和高,可以通过View.getWidth()View.getHeight()来得到宽高。...然而新手们经常在onCreate方法中直接调用上面两个方法得到值是0! 这是为什么呢? 因为View绘制是通过两个遍历来完成,一个measure过程,一个layout过程。...只有经过“测量”“布局”之后,View才能正确地完成绘制。而这一切是发生在onCreate方法之后。...所以在onCreate中直接使用View.getWidth()View.getHeight()是无法得到正确。 那应该怎么onCreate中获取View宽高呢?...savedInstanceState); view.post(new Runnable(){ public void run(){ //在这里使用View.getWidth()View.getHeight

5.3K20
  • svg.js教程及使用手册详解(二)

    上篇简要介绍了svg.js基本信息基本用法,这篇开始详细讲解svg.js用法。 SVG元素 SVG元素主要包括各种形状、线条、文本、路径。...矩形——Rect Rects有两个参数,即矩形宽度高度: var rect = draw.rect(100, 100) 椭圆——Ellipse Ellipses就像矩形一样,有两个参数,横向纵向直径...fill('none').stroke({ width: 1 }) 多边形——Polygon polyline画出是折线,是不闭合多边形,Polygon则相对画出是闭合多边形。...可以使用以下函数: var image = draw.image('/path/to/image.jpg', 200, 200).move(100, 100) 其中第一个参数是图片路径,后两个参数分别表示图片宽度高度...可以将原始rect当作一个库元素,可以通过use方法来进行重用而不会修改原始元素。 下一篇将持续更新svg.js中引用元素方法,也即控制画布元素进行动画操作方法,敬请期待!

    6.4K51

    TSINGSEE青犀视频H.265流媒体EasyWasmPlayer.Js如何实现自定义高度宽度

    对于TSINGSEE青犀视频开发各种流媒体平台,大多数平台都已经支持了H.265编码视频播放,即EasyWasmPlayer.Js播放器。...当然该播放器在编译中,对于不同屏幕大小或者浏览器播放界面,播放器屏占比也是不同,因此需要对EasyWasmPlayer.Js播放器自定义高度宽度,来实现自定义播放器大小。.../EasyWasmPlayer.js">              .box {             margin: auto;             height...value.value,1);             console.log(value.value);         }           编译完成之后,根据设定高度...image.png EasyPlayer播放器项目还包括EasyPlayer RTSP、EasyPlayer RTMP、EasyPlayerProEasyPlayer.js等播放器,具备更高可用性更低延时

    1.4K30

    python中用turtle画一个圆形(pythonturtle教程)

    每次都用乌龟(turtle) 来画出一个正方形,然后通过旋转3°后,继续画一样正方形,在通过120次循环后就实现了完整圆,这里当然也可以用其他角度次数,只要能完成360度就可以了。...参数:(size,color)(一个大于1整数_可None,颜色值) stamp() 将当前位置上形状复制到画布上,返回stamp_id.可通过下方clearstamp删除 clearstamp(...end_poly() 结束记录多边形顶点,当前点为起始点 get_poly() 返回最后记录多边形 clone() 复制一个一模一样乌龟 getturtle() | getpen() 获取trutle...screensize() 画布大小 canvwidth – positive integer,new width of canvas in pixels 宽度 canvheight – positive...() 返回窗口高度 window_width() 返回窗口宽度 输入方法 textinput() 文字输入 title – string 输入名字 prompt – string 输入文本 numinput

    2.2K10

    JS+Canvas 带你体验「偶消奇不消」智商挑战

    然后将在屏 Canvas 宽度高度按照所获取像素比ratio进行放大,在绘制文字、图片时候,坐标点 x、y 所要绘制图形 width、height均需要按照像素比 ratio 进行缩放。...如何绘制任意多边形图片? 任意一个多边形图形,是由多个平面坐标点所组成图形区域。 在游戏画布内,我们以左上角为坐标原点 {x: 0, y: 0} ,一个多边形包含多个单位长度平面坐标点。...globalCompositeOperation 是指 在绘制新形状时应用合成操作类型 如何判断一个点是否在任意多边形内部? 当回转数为 0 时,点在闭合曲线外部。...讲到这里,我们已经知道如何在Canvas画布内绘制出偶消奇不消效果层叠图形了,接下来我们来看下玩家如何移动选中图形。...上面面这张图动态演示了回转数概念:图中红色曲线关于点(人所在位置)回转数为 2。 对于给定多边形,回转数应该怎么计算呢? 用线段分别连接点多边形全部顶点 ?

    1.4K30

    让你成为灵魂画手 JS 引擎:Zdog

    圆形、扁平、设计师友好用于 canvas SVG 伪 3D 引擎。 使用 Zdog 您可以在 Web 上设计渲染简单 3D 模型。Zdog 是一个伪 3D 引擎。...// Illustration是顶级类,用于处理或元素,保存场景中所有形状,并在元素中显示这些形状。...: illo2, // 设置圆直径 diameter: 80, // 设置画笔宽度 stroke: 20, // 设置圆颜色...动画下一帧继续执行函数 requestAnimationFrame( animate2 ); } // 开始动画,执行函数 animate2(); 三、快速入手 下面我们将一步步讲解如何使用...四、总结 Zdog 可以设计显示简单 3D 模型而不需要很多开销。这让我们成为一个灵魂画手简单了很多,如果你想给自己网站增添色彩,不妨试试 Zdog 吧。

    1.9K40

    PHP GD库

    GD库 图片处理典型流程 1:造画布(或读入一幅图作画布) 2:造颜料 3:利用颜料在画布上写字或填充颜色或画形状 4:输出/生成图片 5:销毁画布 1、GD库 之生成验证码 创建画布(imagecreatetruecolor.../first.png') //------------------------------------------------------- //创建x像素宽,y像素高图片资源 resource imagecreatetruecolor...filename ) //创建一个颜色 int imagecolorallocate ( resource $image , int $red , int $green , int $blue ) //获得图像宽度...(像素) int imagesx ( resource $image ) //获得图像高度(像素) int imagesy ( resource $image ) //往图片上写一串字符(无法换行)...imagefilledrectangle //画一矩形并填充 imagefilledellipse //画一椭圆并填充 imagefilledarc //画一椭圆弧且填充 imagefilledpolygon //画一多边形并填充

    2.1K30

    Fabric.js 拖拽顶点修改多边形形状

    theme: smartblue 我正在参加「掘金·启航计划」 本文简介 戴尬猴,我是德育处主任 这次要介绍一个demo是"拖拽多边形定点修改多边形形状"。...原理分析 要实现“拖拽多边形定点修改多边形形状”这个功能有很多方案,比如 Fabric.js demos · Custom controls, polygon 中,通过自定义控件来实现。...多边形配置 我们创建出来多边形是禁止用户直接操作,想要修改多边形形状只能通过辅助小圆来修改。...这个做法 《Fabric.js 讲解官方demo:Stickman》 是一样。...除此之外还需要将 hasControls hasBorders 设置为 false ,这样做完圆形就不会显示控制角控制边了,看上去会更像是多边形控件。

    2K30

    【D3.js - v5.x】(2)绘图 | 比例尺 | 坐标轴 | 柱状图 | 过渡

    使用 D3 在 body 元素中添加 svg 代码如下: var width = 300; //画布宽度 var height = 300; //画布高度 var svg = d3.select.../设定宽度 .attr("height", height); //设定高度 有了画布,接下来就可以在画布上作图了。...在 SVG 画布预定义元素里,有六种基本图形: 矩形 圆形 椭圆 线段 折线 多边形 另外,还有一种比较特殊,也是功能最强元素: 路径 画布所有图形,都是由以上七种元素组成。...300; //画布宽度 var height = 300; //画布高度 var svg = d3.select("body") //选择文档中body...= 500; //画布宽度 var height = 500; //画布高度 var svg = d3.select("body") //选择文档中

    71120

    H5学习之路之初识canvas,了解下?

    PS:那么这里需要明确一点就是,画布本身是不具备绘画功能,那么它其实只是一个容器,想要完成绘画功能,是需要js实现 var second = document.getElementById("...style="display: none;"/> imag.onload = function(){ cs.drawImage(imag,0,0,40,40);//参数分别是起点坐标X,Y后面是宽度高度...} cs.stroke(); imag.onload = function(){ cs.drawImage(imag,0,0,40,40);//参数分别是起点坐标X,Y后面是宽度高度...closePath() 创建从当前点回到起始点路径。 lineTo() 添加一个新点,然后在画布中创建从该点到最后指定点线条。 clip() 从原始画布剪切任意形状尺寸区域。...createEvent() 创建新 Event 对象 getContext() 获得用于在画布上绘图对象 toDataURL() 导出在 canvas 元素上绘制图像

    1.1K20

    教你用开源 JS 库快速画出 GitHub 章鱼猫

    本文作者:HelloGitHub-kalifun 文中涉及示例代码,已同步更新到 HelloGitHub-Team 仓库 点击本文最下方“阅读原文”即可获取 在上一篇文章我们介绍了 Zdog 如何使用...2.1 创建画布 是时候开始表演了,首先需要创建画布。代码如下: <!...addTo: head }); // 真正进行画头,是一个实体矩形 const noggin = new Zdog.RoundedRect({ addTo: domepiece, // 设置高度宽度...({ addTo: face, // 设置高度宽度 width: 100, height: 0, // 渲染形状线并设置线宽。...把需要形状先构思好,然后再参考 zdog 文档,有没有快捷方式获得你想要形状。有了这个库是不是对自己画画能力又有了新认识呢?这里是 HelloGitHub 扩充你武器库从这里开始!

    94510

    物理世界互动之旅:Matter.js入门指南

    本文还提供丰富代码示例,帮助各位工友更好地理解如何使用 Matter.js 创建令人惊叹物理场景(先画个饼吧~)。...刚体可以是各种形状,例如矩形、圆形、多边形等。 约束(Constraint) 用于约束刚体相对运动,例如让两个刚体之间距离保持不变、限制旋转等。...渲染器 在前面的例子中,我们使用 Matter.Render.create 将画布页面元素绑定在一起。此时默认画布尺寸是 800px * 600px。...在 Matter.js 中,刚体(Body) 是一种物理对象,它具有质量、位置、速度、加速度形状等属性,可以被添加到物理世界中并受到物理引擎模拟。例如矩形圆形。...注意,是正多边形! 参数 x y 是多边形中心点坐标,sides 可以设置多边形数量,radius 设置多边形半径。

    2.1K10

    Python海龟绘图,绘出最靓丽景色

    ,color) #设置宽度 高度 颜色 二、设置画布坐标 我们画图不光要设置画布,还要对画布容器主界面进行设置,不然主界面显示不了,画布自然也不会显示。...turtle.setup(width,height, startx,starty) #设置宽度 高度 开始x坐标 开始y坐标 三、显示主界面 这个跟tkinter显示主界面有点相似,也是使用mainloop...#画布大小背景颜色 turtle.setup(width=600,height=600, startx=300, starty=50) #绘图窗口大小起始坐标 turtle.mainloop()...38.设置或返回以毫秒为单位绘图延迟 turtle.delay(delay=None) 39.开始记录多边形第一个顶点 turtle.begin_poly() 40.停止记录多边形最后一个顶点 turtle.end_poly...() 41.返回最后记录多边形 turtle.get_poly() ?

    1.8K30

    图形编辑器基于Paper.js教程08:鼠标画封闭自由多边形,靠近起点自动关闭

    在这篇技术博客中,我们将深入探讨如何使用 Paper.js 实现一个基本图形绘制应用,允许用户在画布上绘制封闭多边形。...Paper.js 是一个强大向量图形脚本库,它简化了在网页上进行图形交互式界面设计过程。本文主要围绕上述代码进行解析,揭示其实现逻辑关键技术点。...strokeColor 设置路径颜色,strokeScaling: false 确保路径宽度在缩放画布时保持不变。...添加顶点闭合路径 如果路径已经存在,并且用户点击位置接近第一个顶点,则路径将被闭合,完成多边形绘制。...if (event.key === "escape" && path) { path = null; } 总结 本文通过详细解析一个简单 Paper.js 示例,展示了如何利用基本图形库功能来创建一个用户友好绘图应用

    18110
    领券