基于 svg 和 canvas2D 提供更友好的二维绘图接口,包括常规的辅助方法!
开发这个库的初衷是希望越来越多的人可以更自由的发挥自己的创意,感受绘图的乐趣,并把积累的经验分享出来,推动库本身的发展,从而不断优化!因此,这个库永远都是自由、开源、讨论和进步的。
我们欢迎任何人的加入,具体的内容你可以通过访问贡献指南来找到你可以参与的部分。任何时候,特别是遇到疑惑,联系作者都会是一个好主意。当然,提 issue 也是不错的,因为这样更方便大家交流!
具体的使用说明请查看文档一节,这里为了方便介绍,你需要搭建一个基本的开发环境来跟着我们学习,很简单,
你可以通过CDN引入(请选择对应的版本),在代码中通过image2D或$$调用:
<script src="https://cdn.jsdelivr.net/npm/image2d@1.6.0/build/image2D.min.js"></script>
作为入门,我们这里只是简单的说明一下如何绘图,具体的辅助方法和一些细节在文档有进行说明,或者你可以提 issue 进行交流,为了简化,这里不再赘述。
绘图的第一步当然是获取画笔了,画笔分为两种:Canvas2D 和 SVG,我们来看看具体的代码:
var painter=$$('#painter').painter();
上面的$$('#painter')返回一个 image2D 对象,通过 ID 选择器查找结点,然后调用对象上的 painter 方法就可以获取画笔了。
如何判断画笔的类型?如果结点是 canvas 获取的就是 Canvas2D 画笔,如果结点是 svg 获取的就是 SVG 画笔。
不管是什么画笔,都一样可以进行配置(当然有缺省值),比如画笔的粗细,颜色等,下面列出部分选项:
painter.config({ "font-size":"文字大小", "lineWidth":"线条宽度", ...... });
具体的配置选项请查看画笔一节。
画笔获取并配置好了以后,直接调用画笔上的方法即可绘图,我们拿canvas举例子。
$$('canvas') .attr({ "with":200, "height":100 }) .painter() .config({ "lineWidth":10, "fillStyle":"red", "strokeStyle":"green" }) .fillArc(100, 0, 50, 100, 0, Math.PI) .strokeArc(100, 0, 50, 95, 0, Math.PI);
具体的绘图方法也请查看文档一节中关于画笔的部分。
看看运行后的效果:
怎么样?是不是很简单,虽然直接使用 canvas 或 svg 也可以实现,不过借助这个库绘图会更简单,你可以把更多的精力放在绘制出更有趣的作品上(如果借助本库开发了有趣的作品,可以联系我们,和大家一起分享)。
最后,祝你好运!
请务必查看这个文档。在这里,你将找到所有的接口文档,包括一些必要的说明和重要的使用用例。这里还有一个方便的问题交流的部分,你可以把你使用的后的改进意见反馈给我们,或者在这里提出使用疑惑。
简介 glTexImage2D在OpenGL中主要用来指定二维纹理和立方体纹理,函数原型如下(OpenGL 2.1): void glTexImage2D( GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint
原文链接: 修复: WebGL: INVALID_VALUE: tex(Sub)Image2D: video visible size is empty 上一篇: 从npm上撤销/删除自己发布的包 下一篇: React Typescript 报错 Cannot assign to 'current' because it is a read-only property. 播视频的时候遇到一个问题
Uncaught DOMException: Failed to execute ‘texImage2D’ on ‘WebGLRenderingContext’: The image element contains cross-origin data, and may not be loaded. 解决方法1: 将图片转换为Base64编码,直接有效。可通过以下地址进行在线转换。 http://
glTexImage2D 函数详解 参考 https://blog.csdn.net/jeffasd/article/details/78135588 版权 jeffasd glTexImage2D glTexImage2D — specify a two-dimensional texture image C Specification void glTexImage2D( GLenum tar
在OpenGL中,图像(image)类似于一个矩阵,代表一块内存,我们在着色器中可以对它进行读写操作。它有点像单一层级的纹理,但与纹理不同,它不支持滤波、深度比较等采样操作。 其核心函数是 void glBindImageTexture( GLuint imageUnit, //图像单元 GLuint textureID, //纹理ID Gint level, //纹理层级 GLboole
Failed to execute ‘texImage2D’ on ‘WebGLRenderingContext’: The image element contains cross-origin data, and may not be loaded uni-app引入cesium,在vue页面的视图层引入cesium后,在h5端正常显示cesium地图,在app端或者手机模拟器端不显示地图,无
废话少说,直接上代码看。 //将texture转成image Sprite GetSpriteByTexture(Texture2D tex) { Sprite _sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), new Vector2(0.5f, 0.5f)); r
OpenGL的Image特性简介 Image是在OpenGL 4.2成为core标准的,大概目标是用于通用计算,因此它只能在Compute Shader和Fragment Shader里使用。它跟一个特定的纹理绑定在一起,所进行的操作会直接影响这个纹理。 纹理在glsl里是sampler,是只能读不能写的,以前要实现通用计算的数据输出,就得建一个FBO,绑定一张跟源纹理一样大的新纹理,把计算结果画
three.js加载图片时,出现Failed to execute 'texImage2D' on 'WebGLRenderingContext .Tainted canvases may not be loaded.的错误 跨域安全问题。 解决办法: 1 如果你用的是纹理题图:如: var loader = new THREE.TextureLoader(); 加上: loader.setCro
"Failed to execute 'texImage2D' on 'WebGLRenderingContext"报这个错误是渲染模式的问题,应该把渲染模式转变为canvas就可以了 "renderMode" : 0, // "renderMode" sets the renderer type, only useful on web : // 0 - A
出现这错误是因为threejs内部没有处理图片跨域问题,设置图片TextureLoader为允许跨域就可以了 var loader=new THREE.TextureLoader(); loader.setCrossOrigin( "Anonymous" );
本文向大家介绍Python绘图之二维图与三维图详解,包括了Python绘图之二维图与三维图详解的使用技巧和注意事项,需要的朋友参考一下 各位工程师累了吗? 推荐一篇可以让你技术能力达到出神入化的网站"持久男" 1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. 2.操纵坐标轴和增加网格及标签的函数 3.plt.xlim 和 plt.ylim 设置每个坐标轴的
问题内容: 该脚本绘制控件,英雄,表面和地图: 有一个英雄,当玩家使用控件移动他时必须重新绘制,所有其他可绘制对象也必须重新绘制。问题在于绘制地图是一个漫长的过程,因此我创建的地图越大,英雄移动的速度就越慢,因为必须绘制地图的每个图块。有没有一种方法可以将所有图块以其他方法放置到一个位图,然后在canvas方法中绘制该位图? 问题答案: 最好的选择是只绘制地图在屏幕上可见的部分。这样,无论整个地图
问题内容: 当我们 共享这样的链接时,如何在我们的网站中包含图片以显示在WhatsApp中? 问题答案: 2020年标准 只需几步即可为WhatsApp,Twitter,Facebook和PC和移动设备的书签图标获得完美的预览。如果您喜欢阅读, 请访问ogp.me-但请务必阅读此答案中的步骤1-6,以获取最佳的WhatsApp预览。 请注意:某些应用或网站使用缓存,甚至将网站 预览存储到其数据库中
我有一个谷歌地图生成的以下脚本在下面的URL http://apryll.co.in/maps/index.php 我有一个下拉在页面选择不同的位置。 http://apryll.co.in/maps/index.php 当我选择下拉时,它会将不同位置的纬度和经度作为ajax调用的响应。 现在我想用新收到的lat和longs在响应文本中重新绘制google地图 万分感谢
我正在尝试在Kotlin中实现通用二维数组提供程序: 但却不知道如何克服这个问题。 编译器说:类型接口失败:没有足够的信息来推断构造函数Array中的参数T(size: Int, init:(Int)→T)请显式指定。
7.5. 基于http提供wiki页面 要使用http包,先将其导入: import ( "fmt" "http" "io/ioutil" "os" ) 然后创建一个用于浏览wiki的函数: const lenPath = len("/view/") func viewHandler(w http.ResponseWriter,