覚書 canvasに円を描く関数
TypeScriptを使って書きました。
わざわざDrawCircleの型を定義しているのは、drawCircle関数からできるだけ型の情報をなくして読むときのノイズを減らすためです。
type Circle = {
x: number
y: number
w: number
lineColor?: string
lineWidth?: number
fillColor?: string
}
type DrawCircle = (ctx: CanvasRenderingContext2D, circle: Circle) => void
export const drawCircle: DrawCircle = (
ctx,
{ x, y, w, lineColor = 'black', lineWidth = 1, fillColor }
): void => {
ctx.beginPath()
ctx.arc(x, y, w, 0, 2 * Math.PI)
ctx.strokeStyle = lineColor
ctx.lineWidth = lineWidth
ctx.stroke()
if (fillColor !== undefined) {
ctx.fillStyle = fillColor
ctx.fill()
}
}
使い方
const ctx = canvas.getContext('2d')
if (ctx !== null) {
drawCircle(ctx, {
x: 200,
y: 400,
w: 20,
lineColor: 'red',
fillColor: 'lightYellow',
})
}
最近のコメント