如何在使用 FabricJS 缩放时保持椭圆的笔划宽度?

如何在使用 fabricjs 缩放时保持椭圆的笔划宽度?

在本教程中,我们将学习如何在使用 FabricJS 缩放时保持椭圆的笔画宽度。默认情况下,描边宽度根据对象的比例值增大或减小。但是,我们可以通过使用 StrokeUniform 属性来禁用此行为。

语法

new fabric.Ellipse({ strokeUniform: Boolean }: Object)

登录后复制

参数

选项(可选)- 此参数是一个提供额外自定义的对象到我们的椭圆。使用此参数,可以更改与 styleUniform 为属性的对象相关的颜色、光标、描边宽度和许多其他属性。

Options Keys

中风统一 – 该属性接受一个布尔值,允许我们指定是否描边宽度是否会随对象一起缩放。其默认值为 False

示例 1

缩放对象时描边宽度的默认外观

以下示例描述了正在缩放的​​椭圆对象的描边宽度的默认外观。由于我们没有使用 tripUniform 属性,因此笔画宽度也会受到对象缩放的影响。

                           

How to maintain stroke width of Ellipse while scaling using FabricJS?

     

Select the object and stretch it horizontally or vertically. Here the stroke width will get affected while scaling the object up or down. This is the default behavior. Here we have not used the strokeUniform property.

                 // Initiate a canvas instance var canvas = new fabric.Canvas("canvas"); // Initiate an ellipse instance var ellipse = new fabric.Ellipse({ left: 215, top: 100, fill: "blue", rx: 90, ry: 50, stroke: "#c154c1", strokeWidth: 15, }); canvas.add(ellipse); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250);    

登录后复制

示例 2

StrokeUniform 属性作为键传递

在此示例中,我们将传递StrokeUniform 属性作为键。因此,对象的笔划将不再随着对象的缩放而增加或减少。在此示例中,StrokeUniform 属性已被指定为“true”值,这将确保笔划始终与为笔划宽度输入的精确像素大小相匹配。

                           

Maintaining the stroke width of an Ellipse while scaling using FabricJS

     

Select the object and stretch it in any direction. Here the stroke width of the ellipse will remain unaffected at the time of scaling up because we have applied the strokeUniform property.

            // Initiate a canvas instance var canvas = new fabric.Canvas("canvas"); // Initiate an ellipse instance var ellipse = new fabric.Ellipse({ left: 215, top: 100, fill: "blue", rx: 90, ry: 50, stroke: "#c154c1", strokeWidth: 15, strokeUniform: true, }); // Adding it to the canvas canvas.add(ellipse); canvas.setWidth(document.body.scrollWidth); canvas.setHeight(250);    

登录后复制

以上就是如何在使用 FabricJS 缩放时保持椭圆的笔划宽度?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2692774.html

(0)
上一篇 2025年3月7日 17:46:55
下一篇 2025年3月7日 17:47:03

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 15个Java线程并发面试题和答案

    1. 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行? 这个线程面试题通常在第一轮面试或电话面试时被问到,这道多线程问题为了测试面试者是否熟悉 join 方法的概念。答案也非常…

    2025年5月3日
    000
  • java面试题最容易犯错的8道

    1. static 和 final 的用法 static 的作用从三个方面来谈,分别是静态变量、静态方法、静态类。 静态变量:声明为 static 的静态变量实质上就是全局变量,当声明一个对象时,并不产生static 变量的拷贝,而是该类所…

    2025年5月3日
    000
  • Person p = new Person();在内存中做了哪些事情?

    Person p = new Person();在内存中做了哪些事情? 将Person.class文件加载进内存中。 如果p定义在主方法中,那么,就会在栈空间开辟一个变量空间p。 在堆内存给对象分配空间。 对对象中的成员进行默认初始化。 对…

    2025年5月3日
    000
  • 2020年JAVA最常见面试题汇总(收藏)

    java基础以及多个“比较” 1.collections.sort排序内部原理 在Java 6中Arrays.sort()和Collections.sort()使用的是MergeSort,而在Java 7中,内部实现换成了TimSort,其…

    2025年5月3日
    000
  • 9道常见的java笔试选择题

    1.关于Java编译,下面哪一个正确()(选择一项) A.Java程序经编译后产生machine code B.Java程序经编译后会生产byte code C.Java程序经编译后会产生DLL 立即学习“Java免费学习笔记(深入)”; …

    2025年5月3日
    000
  • java最新基础知识面试题

    java最新基础知识面试题 1、static关键字什么意思?java中是否可以覆盖一个private或者是static的方法? “static”表明一个成员变量或者是成员方法可以在没有所属类的实例变量的情况下访问。 java中static方…

    2025年5月3日
    000
  • java内存溢出面试题

    引起内存溢出的原因有很多种,常见的有以下几种: 内存中加载的数据量过于庞大,如一次从数据库取出过多数据; 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收; 代码中存在死循环或循环产生过多重复的对象实体; 立即学习“Java免费学…

    2025年5月3日
    000
  • Java中高级面试题(附答案)

    1、redis如何跟本地数据同步? 程序实现mysql更新、添加、删除就会同步操作redis 程序查询redis,不存在就查询mysql,自动保存redis 2、redis几种数据结构? set、list、hash、string、zset …

    2025年5月3日
    000
  • java gc 面试题及答案(1~5题)

    1、既然有GC机制,为什么还会有内存泄露的情况? 理论上Java因为有垃圾回收机制(GC)不会存在内存泄露问题(这也是Java被广泛使用于服务器端编程的一个重要原因)。然而在实际开发中,可能会存在无用但可达的对象,这些对象不能被GC回收,因…

    2025年5月3日
    000
  • java笔试常见的选择题

    1.已知表达式int m[] = {0,1,2,3,4,5,6}; 下面那个表达式的值与数组的长度相等() A m.length() B. m.length C. m.length()+1 立即学习“Java免费学习笔记(深入)”; D. …

    2025年5月3日
    000

发表回复

登录后才能评论