日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

我們可以通過創建fabric.Polygon的實例來創建一個Polygon對象。多邊形對象的特征可以是由一組連接的直線段組成的任何閉合形狀。由于它是 FabricJS 的基本元素之一,我們還可以通過應用角度、不透明度等屬性輕松自定義它。為了以編程方式實現復制粘貼,我們需要使用 clone 方法。

語法

clone( callback: Object, propertiesToInclude: Array)

登錄后復制

參數

    Callback(可選)– 此參數是通過克隆調用的回調函數。

    propertiesToInclude(可選) – 此參數包括我們希望包含在克隆畫布實例中的任何其他屬性。它必須是數組的形式。

    示例 1:在多邊形上以編程方式實現復制粘貼

    讓我們看一個代碼示例,以了解如何以編程方式在多邊形上實現復制粘貼。我們需要克隆正在復制的內容并將其添加到剪貼板,以便稍后粘貼。為此,我們在Copy()函數中使用了clone方法,該方法將克隆主動選擇的對象并將其保存到剪貼板。此外,我們創建了一個 Paste() 函數,它將使用 canvas.add 將克隆對象添加到我們的畫布中,在本例中是一個多邊形。

    <!DOCTYPE html>
    <html>
    <head>
       <!-- Adding the Fabric JS Library-->
       <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script>
    </head> 
    <body>
       <h2>Implementing copy paste programmatically on Polygon</h2>
       <p>
          You can select the object, click on copy and then click on paste button to see object duplication in action
       </p>
       <button onclick="Copy()" style="padding: 3px">copy</button>
       <button onclick="Paste()" style="padding: 3px">paste</button>
       <canvas id="canvas"></canvas>
       <script>
          
          // Initiate a canvas instance
          var canvas = new fabric.Canvas("canvas");
          canvas.setWidth(document.body.scrollWidth);
          canvas.setHeight(250);
          
          // Initiating Copy function which copies
          
          // the object to clipboard
          function Copy() {
             canvas.getActiveObject().clone(function (cloned) {
                _clipboard = cloned;
             });
          }
          
          // Initiating Paste function which pastes
          // the object to canvas, adds offset and 
          // makes the object active
          function Paste() {
             _clipboard.clone(function (clonedObj) {
                canvas.discardActiveObject();
                clonedObj.set({
                   left: clonedObj.left + 10,
                   top: clonedObj.top + 10,
                   evented: true,
                });
                canvas.add(clonedObj);
                clipboard.top += 10;
                _clipboard.left += 10;
                canvas.setActiveObject(clonedObj);
                canvas.requestRenderAll();
             });
          }
          
          // Initiating a points array
          var points = [
             { x: 30, y: 50 },
             { x: 70, y: 50 },
             { x: 0, y: 0 },
             { x: 70, y: 0 },
          ];
          
          // Initiating a polygon object
          var polygon = new fabric.Polygon(points, {
             left: 100,
             top: 40,
             fill: "#1e90ff",
             strokeWidth: 4,
             stroke: "green",
             scaleX: 2,
             scaleY: 2,
          });
          
          // Adding it to the canvas
          canvas.add(polygon);
       </script>
    </body>
    </html> 
    

    登錄后復制

    示例 2:在 Circle 上以編程方式實現復制粘貼

    讓我們看一個代碼示例,以了解如何使用 FabricJS 在圓上以編程方式實現復制粘貼。在本例中,我們啟動了一個半徑為 40 的圓而不是多邊形對象,并將其添加到畫布中。同樣,Copy()Paste() 函數可用于除 Polygon 之外的各種對象。

    <!DOCTYPE html>
    <html>
    <head>
       <!-- Adding the Fabric JS Library-->
       <script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/510/fabric.min.js"></script>
    </head>
    <body>
       <h2>Implementing copy paste programmatically on Circle</h2>
       <p>
          You can select the object, click on copy and then click on paste button to see object duplication in action
       </p>
       <button onclick="Copy()" style="padding: 3px">copy</button>
       <button onclick="Paste()" style="padding: 3px">paste</button>
       <canvas id="canvas"></canvas>
       <script>
          
          // Initiate a canvas instance
          var canvas = new fabric.Canvas("canvas");
          canvas.setWidth(document.body.scrollWidth);
          canvas.setHeight(250);
          
          // Initiating Copy function which copies
          
          // the object to clipboard
          function Copy() {
             canvas.getActiveObject().clone(function (cloned) {
                _clipboard = cloned;
             });
          }
          
          // Initiating Paste function which pastes
          // the object to canvas, adds offset and
          // makes the object active
          function Paste() {
             _clipboard.clone(function (clonedObj) {
                canvas.discardActiveObject();
                clonedObj.set({
                   left: clonedObj.left + 10,
                   top: clonedObj.top + 10,
                   evented: true,
                });
                canvas.add(clonedObj);
                _clipboard.top += 10;
                _clipboard.left += 10;
                canvas.setActiveObject(clonedObj);
                canvas.requestRenderAll();
             });
          }
          
          // Initiating a circle object
          var circle = new fabric.Circle({
             left: 100,
             top: 40,
             fill: "#1e90ff",
             radius: 40,
             strokeWidth: 4,
             stroke: "green",
             scaleX: 2,
             scaleY: 2,
          });
          
          // Adding it to the canvas
          canvas.add(circle);
       </script>
    </body>
    </html>
    

    登錄后復制

    結論

    在本教程中,我們使用兩個示例來演示如何使用 FabricJS 以編程方式實現復制粘貼。

    以上就是如何使用 FabricJS 以編程方式實現復制粘貼?的詳細內容,更多請關注www.92cms.cn其它相關文章!

分享到:
標簽:復制 如何使用 方式 粘貼 編程
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定