Skip to content

هندسهٔ Canvas 2D

سازندگان مسیر و حساب زاویه برای Canvas 2D. هر تابع مسیر تنها مسیر را می‌سازد؛ هرگز fill() یا stroke() را صدا نمی‌زند، پس فراخواننده تصمیم می‌گیرد چگونه رنگش کند.

کاربرد

ts
import { roundRectByArc, getLinearGradient } from 'ranuts/utils';

const ctx = canvas.getContext('2d')!;

roundRectByArc(ctx, 10, 10, 200, 80, 12);
ctx.fillStyle = getLinearGradient(ctx, 10, 10, 200, 80, 'linear-gradient(90deg, #06f, #0cf)');
ctx.fill();

API

getAngle

درجه به رادیان.

پارامترها

پارامترتوضیحنوعپیش‌فرض
degزاویه بر حسب درجهnumberالزامی

بازگشت

آرگومانتوضیحنوع
radزاویه بر حسب رادیانnumber

getArcPointerByDeg

نقطه‌ای روی دایره که به آن زاویه مربوط است.

پارامترها

پارامترتوضیحنوعپیش‌فرض
degزاویه بر حسب رادیانnumberالزامی
rشعاعnumberالزامی

بازگشت

آرگومانتوضیحنوع
point[x, y][number, number]

getTangentByPointer

خط مماس در نقطه‌ای روی دایره.

پارامترها

پارامترتوضیحنوعپیش‌فرض
xمختصهٔ xnumberالزامی
yمختصهٔ ynumberالزامی

بازگشت

آرگومانتوضیحنوع
line[شیب، عرض از مبدأ]Array<number>

roundRectByArc

مستطیلی با گوشه‌های گرد می‌کشد. شعاع گوشه‌ای که از نصف ضلع کوتاه‌تر بزرگ‌تر باشد به همان نصف مهار می‌شود، پس گوشه‌های همسایه هرگز روی هم نمی‌افتند.

پارامترها

پارامترتوضیحنوعپیش‌فرض
ctxبافتار دوبعدی CanvasCanvasRenderingContext2Dالزامی
...restx, y, w, h, rnumber[]الزامی

بازگشت

بدون مقدار بازگشتی (void)

fanShapedByArc

یک قاچ دایره‌ای می‌کشد، همراه با شکافی که آن را از قاچ‌های دیگر جدا می‌کند.

پارامترها

پارامترتوضیحنوعپیش‌فرض
ctxبافتار دوبعدی CanvasCanvasRenderingContext2Dالزامی
maxRadiusشعاع بیرونیnumberالزامی
startزاویهٔ آغاز بر حسب رادیانnumberالزامی
endزاویهٔ پایان بر حسب رادیانnumberالزامی
gutterپهنای شکاف میان قاچ‌هاnumberالزامی

بازگشت

بدون مقدار بازگشتی (void)

getLinearGradient

رشتهٔ linear-gradient(...) در CSS را به CanvasGradient در Canvas برمی‌گرداند.

createLinearGradient تنها یک نقطهٔ آغاز و یک نقطهٔ پایان می‌گیرد، حال آنکه CSS جهت را با زاویه بیان می‌کند. از این رو دایره به هشت قاچ ۴۵ درجه‌ای بخش می‌شود و مماس، آن زاویه را دوباره به مختصات آغاز و پایان روی مرز مستطیل برمی‌گرداند. جهت‌های کلیدواژه‌ای (to top و to bottom و to left و to right) مستقیم رسیدگی می‌شوند.

پارامترها

پارامترتوضیحنوعپیش‌فرض
ctxبافتار دوبعدی CanvasCanvasRenderingContext2Dالزامی
xمقدار x در گوشهٔ بالا-چپ مستطیلnumberالزامی
yمقدار y در گوشهٔ بالا-چپ مستطیلnumberالزامی
wپهنای مستطیلnumberالزامی
hبلندای مستطیلnumberالزامی
backgroundبرای نمونه linear-gradient(90deg, red, blue)stringالزامی

بازگشت

آرگومانتوضیحنوع
gradientمستقیم به fillStyle یا strokeStyle نسبت‌دادنی استCanvasGradient

WARNING

ایستگاه‌های رنگ باید بی‌یکا باشند (red 0, blue 1). ایستگاهی به درصد (red 50%) به NaN تجزیه می‌شود و addColorStop خطا پرتاب می‌کند.

منتشرشده تحت مجوز MIT.