圖形編輯器基于Paper.js教程29:基于圖層的所有矢量圖元的填充規則實現

背景
在lightburn中,對于填充圖層,有這樣一個隱藏的邏輯,那就是,在加工時,填充規則是以填充圖層的所有元素進行計算的,什么意思那?

如果你在填充圖層中畫了兩個圖形,一個圓,一個矩形,如果這兩個圖形不相交,也不存在任何包含關系,那么你在加工后,你會得到一個填充的矩形和一個填充的圓。
如下圖:
在這里插入圖片描述

假如現在移動圓形,使其與矩形相交或者包含,那么你最后的結果就不是一個矩形一個圓了。
而是下面的效果

在這里插入圖片描述
在這里插入圖片描述

重疊部分部分會被鏤空。這個規則 是以圖層的所有元素進行 奇偶規則 (evenodd)的運算。而且是默認的,對于其他的軟件,要實現這種效果,需要將元素進行組合后才能實現。在用戶的不斷要求下,前一段時間,我也終于給TS加上了這個功能。

下面簡單說一下技術方案,在分析填充的雕刻圖層時,需要將該圖層的所有元素組裝起來,這里的組裝我使用的復合路徑,也就是SVG中的Path標簽,也就是將圖層中所有圖元轉換為一個Path路徑。并對這個路徑進行奇偶填充線。最后就能使用很簡單的操作得到非常復雜的鏤空作品。
需要注意的是,由于將所有圖元組合起來,會改變個體的屬性,所以我們需要單獨創建一個對象,并在完成填充線,生成gcode后,將臨時元素刪除。如果計算的元素非常多的話,有時會比較卡。

之前的一個比較復雜的作品在這里插入圖片描述
擁有883個子路徑,生成的gcode 6.14 M

隨著應用功能的不斷增多,框架,代碼組織,模式設計,現在變得尤為重要。功能能做出來還不行,還要保證良好的性能表現。當所有的按鈕, 功能都向用戶開放時,狀態的維護,邊界,交互的中間狀態會變得非常難以維護。項目越往后走,越是越是泥濘。

當你感到 力不從心時,可以去看看一些優秀的開源項目,一些框架,庫的源碼,他山之石,可以攻玉。

最近令人高興的是,我的教資面試通過了,嘻嘻…真是做夢都能讓人笑醒,考試前真的沒有演練,全靠臨場發揮,而且面試時做的很差勁。我都打算下半年繼續考了,結果面試竟然通過了,想起來我就感覺自己真是太幸運了,我真是要謝謝面試老師,放我一馬。面試后還要做個普通話測試,考個二甲,然后體檢,就能等著拿教師資格證啦。

最近在盤算著下半年的目標,是要健身還是練字,下一個目標是拿什么證書?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/85022.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/85022.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/85022.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python 函數實戰指南:提升編程效率的實用技巧

在 Python 編程的世界里,函數是構建高效代碼的基石。掌握實用的函數技巧不僅能讓代碼更加簡潔優雅,還能顯著提升開發效率。我們一起將結合實際案例,深入剖析 Python 函數的使用技巧,幫助開發者在日常開發中事半功倍。 一、基礎函數…

OPenCV CUDA模塊圖形變換----構建透視變換映射表函數buildWarpPerspectiveMaps()

操作系統:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 編程語言:C11 算法描述 該函數用于構建一個透視變換(Perspective Transform)的映射表(xmap / ymap),可用于后…

tcping工具使用指南

tcping是一個用于測試TCP端口連通性的工具,它類似于傳統的ping命令,但工作在傳輸層(TCP)而不是網絡層(ICMP)。 基本功能 tcping的主要功能包括: 測試目標主機特定TCP端口是否開放 測量TCP連接建立時間 統計丟包率和響應時間 安裝方法 …

CSP 2024 入門級第一輪(88.5)

4. 以下哪個序列對應數字 00 至 88 的 44 位二進制格雷碼(Gray code)?( ) A. 0000, 0001, 0011, 0010, 0110, 0111, 0101, 1000 B. 0000, 0001, 0011, 0010, 0110, 0111, 0100, 0101 C. 0000, 0001, 0011, 0010, …

三菱FX-5U系列入門到精通

第2章 中間繼電器 繼電器工作模式:線圈得電,常開觸點閉合,常閉觸點斷開。總結:中間繼電器線圈電壓分為:24VDC 110VAC 220VAC 380VAC PLC控制柜中常用的是24VDC比較多,而動力電柜中或者控制風機水泵的電柜中220VAC比較多。大部分選擇24VDC,然后用觸點控制220或者380,說白…

簡歷模板1——王明 | 高級數據挖掘工程師 | 5年經驗

王明 | 高級數據挖掘工程師 | 5年經驗 📱 (86) 189-xxxx-xxxx | 📧 wangmingemail.com | 📍 深圳市 💻 GitHub | 👔 LinkedIn 💼 工作經歷 ?科技前沿集團 | 高級數據挖掘工程師 📅 2021.06 …

【JVM】- 內存模式

Java內存模型:JMM(Java Memory Model),定義了一套在多線程環境下,讀寫共享數據(成員變量、數組)時,對數據的可見性,有序性和原子性的規則和保障。 原子性 問題分析 【問…

AQS獨占模式——資源獲取和釋放源碼分析

AQS資源獲取(獨占模式) Node節點類 static final class Node {//標記當前節點的線程在共享模式下等待。static final Node SHARED new Node();//標記當前節點的線程在獨占模式下等待。static final Node EXCLUSIVE null;//waitStatus的值&#xff0c…

壓測過程中TPS上不去可能是什么原因

進行性能分析 接口沒有報錯或者錯誤率低于1%,繼續增加并發還是一樣,這個時候需要考慮幾點 1.是否觸發限流,比如waf、Nginx等情況,有沒有一些限流的情況,如果觸發了限流,請求是沒有達到后端的,所…

Golang 解大整數乘法

文章目錄 Golang 解大整數乘法問題描述:LeetCode 43. 字符串相乘思路Golang 代碼 Golang 解大整數乘法 在初學 C 語言的時候,我們一定接觸過“字符串相加”或“字符串相乘”之類的問題,對于初學者而言,這類問題的難度一般來說是比…

web3-區塊鏈的技術安全/經濟安全以及去杠桿螺旋(經濟穩定)

web3-區塊鏈的技術安全/經濟安全以及去杠桿螺旋(經濟穩定) 三個基本設計問題 技術安全 在技術結構中對其進行原子級的、瞬時利用(無風險) 無風險,因為攻擊者的結果還是二進制的: 只會是攻擊成功 獲利或…

Java多線程通信:wait/notify與sleep的深度剖析(時序圖詳解)

在Java多線程編程中,線程間的通信與協作是實現復雜并發邏輯的關鍵。wait()、notify()以及sleep()方法作為線程控制的重要工具,有著各自獨特的使用場景與規則。本文將深入探討wait()和notify()的協作機制,以及sleep()的阻塞特性,同…

關于使用EasyExcel、 Vue3實現導入導出功能

后端部分: 其中查詢數據的服務省略 1、引用 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.3</version></dependency> 2、controller package com.rs.cphs.sys.controller;i…

機器學習中的數據準備關鍵技術

有效的數據準備對于構建強大的機器學習模型至關重要。本文檔總結并闡述了為監督和非監督學習任務準備數據的關鍵技術。 1. 理解數據類型 有兩種數據類型。定性數據描述對象的特征&#xff0c;而定量數據描述對象的數量。 定性&#xff08;分類&#xff09;數據 名義&#x…

深度學習——基于卷積神經網絡實現食物圖像分類【3】(保存最優模型)

文章目錄 引言一、項目概述二、環境配置三、數據預處理3.1 數據轉換設置3.2 數據集準備 四、自定義數據集類五、CNN模型架構六、訓練與評估流程6.1 訓練函數6.2 評估與模型保存 七、完整訓練流程八、模型保存與加載8.1 保存模型8.2 加載模型 九、優化建議十、常見問題解決十一、…

《棒球百科》棒球怎么玩·棒球9號位

用最簡單的方式介紹棒球的核心玩法和規則&#xff0c;完全零基礎也能看懂&#xff1a; 一句話目標 進攻方&#xff1a;用球棒把球打飛&#xff0c;然后拼命跑完4個壘包&#xff08;逆時針繞一圈&#xff09;得分。 防守方&#xff1a;想盡辦法讓進攻方出局&#xff0c;阻止他…

語言模型是怎么工作的?通俗版原理解讀!

大模型為什么能聊天、寫代碼、懂醫學&#xff1f; 我們從四個關鍵模塊&#xff0c;一步步拆開講清楚 &#x1f447; ? 模塊一&#xff1a;模型的“本事”從哪來&#xff1f;靠訓練數據 別幻想它有意識&#xff0c;它的能力&#xff0c;全是“喂”出來的&#xff1a; 吃過成千…

nrf52811墨水屏edp_service.c文件學習

on_connect函數 /**brief Function for handling the ref BLE_GAP_EVT_CONNECTED event from the S110 SoftDevice.** param[in] p_epd EPD Service structure.* param[in] p_ble_evt Pointer to the event received from BLE stack.*/ static void on_connect(ble_epd_t …

Nginx-2 詳解處理 Http 請求

Nginx-2 詳解處理 Http 請求 Nginx 作為當今最流行的開源 Web 服務器之一&#xff0c;以其高性能、高穩定性和豐富的功能而聞名。在處理 HTTP請求 的過程中&#xff0c;Nginx 采用了模塊化的設計&#xff0c;將整個請求處理流程劃分為若干個階段&#xff0c;每個階段都可以由特…

40-Oracle 23 ai Bigfile~Smallfile-Basicfile~Securefile矩陣對比

小伙伴們是不是在文件選擇上還默認給建文件4G/個么&#xff0c;在oracle每個版本上系統默認屬性是什么&#xff0c;選擇困難癥了沒&#xff0c;一起一次性文件存儲和默認屬性看透。 基于Oracle歷代在存儲架構的技術演進分析&#xff0c;結合版本升級和23ai新特性&#xff0c;一…