畫出任何東西
將請求轉換為數學繪圖,並附上對應的數學內容。使用者通常是內容創作者和影片剪輯師。請以正確格式提供檔案,並用簡單的語言解釋方法。
程序
- 找出主題、目標平台(Reels、貼文、YouTube、影片疊加)、靜態或動畫,以及顏色。如果資料遺漏,使用預設值(正方形、深色主題)。告知使用者預設值。不要問太多問題。
- 選擇方法(下表)。如果使用者明確指定了方法,則使用該方法。
- 如果使用者提供圖片,使用
trace_image.py複製它。複製比重新繪製更精確。 - 如果沒有圖片,自行建構幾何形狀(參閱「無需圖片繪製」)。
- 製作快速預覽(540 px,少數影格)。使用圖片檢視器查看。修正比例、構圖和顏色。重複此步驟直到結果令人滿意。
- 以要求的尺寸產出最終檔案。
- 將檔案放入輸出資料夾並呈現。給出簡短回覆:方法、主要參數,以及一個準備好的說明文字。
方法選擇
| 請求 | 方法 | 腳本 |
|---|---|---|
| 複製圖片(繪圖、標誌、文字、剪影、插圖、照片) | 貝茲(Potrace),用於動畫的逐輪廓傅立葉 | trace_image.py |
| 名稱、簽名、新輪廓、「由圓圈繪製」 | 傅立葉 | fourier_draw.py |
| 填充形狀:圖示、吉祥物、標誌、場景、圖案、曼陀羅 | SDF | sdf.py(函式庫) |
| 方程式作為主體、著名曲線、填充區域 | 隱含 | curves.py |
| 螺旋、玫瑰線、利薩如、曲線板 | 參數/極座標 | curves.py |
| 像素藝術、「繪製自身的公式」 | Tupper | tupper.py |
| 碎形、植物、流場 | 其他 | 自行編寫程式碼(references/methods.md §7) |
傅立葉無法精確複製尖角(吉布斯現象)。若要精確複製,請使用貝茲。傅立葉用於動畫。
腳本
所有腳本都位於 scripts/。使用 --help 執行腳本以查看所有選項。常見選項:
--size(reels, post, square, youtube, thumb, 4k 或 WxH),--theme(dark, light, neon, blueprint, paper),--transparent。
依賴項:numpy, matplotlib, Pillow, imageio/ffmpeg, OpenCV, scikit-image, potracer(腳本會自動使用 pip 安裝,如果缺失的話)。
複製圖片:
python scripts/trace_image.py drawing.jpg --svg d.svg --png d.png --desmos d.txt
python scripts/trace_image.py drawing.jpg --anim d.mp4 --anim-style fourier --centerline --size reels
python scripts/trace_image.py sketch.png --centerline --svg sketch.svg # 可編輯的筆觸
python scripts/trace_image.py logo.png --mode color --colors 5 --svg logo.svg
python scripts/trace_image.py photo.jpg --mode edges --anim lines.mp4
--mode ink(預設):線稿、標誌、文字、剪影、螢幕截圖。它會自動偵測亮底暗字圖像並移除黑色邊框。--mode color --colors N:插圖、印刷品、畫作、圖示、照片。對於藝術作品和照片,使用 12–16 種顏色。添加--lines以用於印刷品、漫畫和墨水藝術:它會為細的深色輪廓和小的亮色細節(泡沫、星星、高光)添加上層。--detail 1保留更多小細節。--mode edges:將照片轉換為線條畫。--centerline:用於線稿、素描、手寫和簽名。每個筆觸成為一條可編輯的 SVG 路徑,並帶有其筆觸寬度(如同 Illustrator/Figma/Inkscape 中的畫筆線條)。連接點、交叉處和尖角會被修復,直線部分變成精確的線條,筆觸末端(圓頭/平頭)會根據墨跡自動識別。可使用--cap和--join覆蓋。若不含--centerline,SVG 將產生填充輪廓(最適合標誌、文字、剪影)。--anim-style pen繪製貝茲曲線,然後顯示填充。--anim-style fourier對每個輪廓或筆觸使用一條本輪鏈。在色彩模式下,本輪繪製最長的區域輪廓(--max-strokes,預設 800),然後色彩向量淡入。--keep-colors保留原始顏色(墨水模式)。--detail N忽略小斑點。--smooth 0保留尖角。- 腳本會輸出精確度(IoU)和以像素為單位的邊緣偏差。對於筆觸,邊緣偏差是更好的指標:平均值低於約 0.8 px 表示非常精確的複製。
- 腳本會輸出精確度。良好數值:剪影和標誌超過 95%,細輪廓 88–92%,
--centerline模式 80–88%(每個筆觸只有一種寬度)。邊緣像素會降低 IoU。在邊緣模式下,該數值沒有參考價值。如果數值偏低,請檢查複製結果並調整--threshold或--detail。 - 在製作動畫之前,將複製結果與原始圖片並排顯示。
**傅立葉:**每個獨立的輪廓都會獲得自己的級數,因此各部分之間不會有連線。--single-line 會產生「一筆畫」風格。
python scripts/fourier_draw.py --text "Ana" --terms 300 --anim ana.mp4 --size reels --png ana.png
python scripts/fourier_draw.py --svg-path "M100 30 C 160 -20 220 60 100 170 C -20 60 40 -20 100 30 Z" \
--terms 40 --png heart.png --desmos heart.txt
輸入:--svg-path、--svg-file、--text、--points(JSON)。輸出:--png(--fill)、--anim、--svg、--desmos(t 從 0 到 1)、--json。
**SDF:**在簡短腳本中將其作為函式庫匯入。
import sys; sys.path.insert(0, "<skill-folder>/scripts")
from sdf import *
P = grid("square", scale=1.2)
body = ellipse(P, 0.6, 0.45)
ears = triangle(mirror_x(P), (0.15, 0.25), (0.5, 0.15), (0.45, 0.72))
cat = smooth_union(body, ears, 0.06)
eyes = circle(translate(mirror_x(P), 0.22, 0.05), 0.07)
render([(cat, "#2b2d42", {"shadow": (0.02, -0.03, 0.05)}), (eyes, "#ffd23f")], "cat.png", theme="paper")
sdf.py 的文件字串中列出了基本幾何形狀、運算和圖層選項。動畫:animate(lambda t: [layers], "out.mp4", frames=120)。如需 Shadertoy/GLSL,請閱讀 references/glsl.md。
**曲線:**變數 a 在動畫期間從 0 變化到 1。使用 ::#hex 設定顏色。
python scripts/curves.py --region "(x**2+y**2-1)**3 - x**2*y**3::#e63946" \
--range -1.6,1.6,-1.3,1.5 --caption '$(x^2+y^2-1)^3 = x^2y^3$' --png heart.png
python scripts/curves.py --polar "1+0.3*cos(7*th+6.283*a)" --anim flower.mp4 --size reels
Tupper:
python scripts/tupper.py encode --text "HELLO" --png tupper.png --out k.txt
python scripts/tupper.py encode --ascii drawing.txt --png art.png --out k.txt # '#' 和 '.'
python scripts/tupper.py classic --png formula.png
編碼功能會使用真實公式進行自我驗證。將完整的 k 值存放在 .txt 檔案中。
影片編輯器的輸出格式
- 社群媒體:
.mp4(H.264)。Slack、電子郵件、README:.gif(最大 540 px)。 - 影片疊加:使用
--transparent搭配.mov(ProRes 4444 含 Alpha 通道)、.webm(VP9 含 Alpha 通道)或資料夾名稱(PNG 序列)。Premiere、DaVinci、After Effects 和 Final Cut 都接受.mov。如果剪輯軟體不接受 Alpha 影片,請使用 PNG 序列。 - 如果動畫僅在 sin/cos(2π·a) 中使用
a,則迴圈是無縫的。 - 更多技巧(安全區域、時長、系列想法),請閱讀
references/creator-playbook.md。
無需圖片繪製
- 將主體分解為 3 到 8 個簡單形狀(貓 = 橢圓 + 2 個三角形 + 圓形)。
- 對稱主體使用
mirror_x。 - 對於傅立葉,在 0–200 的盒狀區域內使用 C 曲線撰寫封閉的 SVG 路徑。
- 對於 Tupper,使用 ASCII 繪製點陣圖(最多 17 行,106 列)。
- 確保一個人在每次預覽中都能立即識別出主體。
限制
繪製原創設計、使用者自己的藝術品和標誌、通用形狀和公共領域作品。請勿複製或描摹屬於他人的角色、吉祥物、標誌或藝術品,即使使用者提供了圖片。也請勿製作它們的「相似」版本。應提供原創設計。只有當使用者擁有照片或獲得許可時,才能複製真實人物的照片。
回覆
保持回覆簡短:你畫了什麼、方法和原因(一句話)、主要參數(項數、方程式、簡短的 k 值)以及一個準備好的說明文字。用一行提供一個有用的變體建議。