CanvasRenderingContext2D.closePath()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 2015 г..
CanvasRenderingContext2D.closePath() - меÑод из Canvas 2D API, добавлÑÐµÑ Ð² пÑÑÑ Ð»Ð¸Ð½Ð¸Ñ Ð¾Ñ ÑекÑÑей до пеÑвонаÑалÑной ÑоÑки под пÑÑи и закÑÑÐ²Ð°ÐµÑ Ñам пÑÑÑ (Ð´Ð°Ð²Ð°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð¸Ð½Ð¸ÑиализиÑоваÑÑ Ð½Ð¾Ð²Ñй). ÐÑли пÑÑÑ Ð¿ÑÑÑой или ÑодеÑÐ¶Ð¸Ñ Ð¾Ð´Ð½Ñ ÑоÑкÑ, ÑÑÐ¾Ñ Ð¼ÐµÑод ниÑего не делаеÑ.
Сама ÑÑнкÑÐ¸Ñ Ð½Ð¸Ñего не ÑиÑÑеÑ. Ðн лиÑÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ Ð¾ÑÑиÑовÑваÑÑ Ð¿ÑÑÑ Ñаким меÑодам, как stroke() и fill().
СинÑакÑиÑ
void ctx.closePath();
ÐÑимеÑÑ
>ÐамкнÑÑÑй ÑÑеÑголÑник
Ð ÑÑом пÑимеÑе ÑоздаÑÑÑÑ Ð´Ð²Ðµ пеÑвÑе линии ÑÑоÑон ÑÑеÑголÑника Ñ Ð¸ÑполÑзованием меÑода lineTo(). ÐоÑле Ñего меÑод closePath() заканÑÐ¸Ð²Ð°ÐµÑ ÑиÑование ÑÑеÑголÑника, авÑомаÑиÑеÑки ÑоединÑÑ Ð¿ÐµÑвÑÑ Ð¸ поÑледнÑÑ ÑоÑки ÑигÑÑÑ (в данном ÑлÑÑае ÑÑеÑголÑника).
HTML
<canvas id="canvas"></canvas>
JavaScript
ТоÑки ÑÑеÑголÑника Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ Ð² кооÑдинаÑÐ°Ñ (20, 150), (120, 20),и (220, 150).
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.moveTo(20, 140); // ÐÐ²Ð¸Ð³Ð°ÐµÑ Ð¿ÐµÑо к Ð½Ð¸Ð¶Ð½ÐµÐ¼Ñ Ð»ÐµÐ²Ð¾Ð¼Ñ ÑглÑ
ctx.lineTo(120, 10); // РиÑÑÐµÑ Ð»Ð¸Ð½Ð¸Ñ Ðº веÑÑ
Ð½ÐµÐ¼Ñ ÑглÑ
ctx.lineTo(220, 140); // РиÑÑÐµÑ Ð»Ð¸Ð½Ð¸Ñ Ðº Ð½Ð¸Ð¶Ð½ÐµÐ¼Ñ Ð¿ÑÐ°Ð²Ð¾Ð¼Ñ ÑглÑ
ctx.closePath(); // РиÑÑÐµÑ Ð»Ð¸Ð½Ð¸Ñ Ðº Ð½Ð¸Ð¶Ð½ÐµÐ¼Ñ Ð»ÐµÐ²Ð¾Ð¼Ñ ÑглÑ
ctx.stroke();
РезÑлÑÑаÑ
ÐакÑÑÑие пÑÑи один Ñаз
ÐÑÐ¾Ñ Ð¿ÑÐ¸Ð¼ÐµÑ ÑиÑÑÐµÑ Ñмайлик, ÑоÑÑоÑÑий из ÑÑÑÑ Ð½Ðµ ÑоединÑннÑÑ Ð´Ñг (под пÑÑей).
ÐÑимеÑание:
ХоÑÑ closePath() вÑзÑваеÑÑÑ Ð¿Ð¾Ñле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð²ÑеÑ
дÑг, закÑÑваеÑÑÑ ÑолÑко поÑледнÑÑ.
HTML
<canvas id="canvas"></canvas>
JavaScript
ÐеÑвÑе две дÑги ÑоздаÑÑ Ð³Ð»Ð°Ð·Ð°, поÑледнÑÑ ÑоздаÑÑ ÑоÑ.
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
ctx.beginPath();
ctx.arc(240, 20, 40, 0, Math.PI);
ctx.moveTo(100, 20);
ctx.arc(60, 20, 40, 0, Math.PI);
ctx.moveTo(215, 80);
ctx.arc(150, 80, 65, 0, Math.PI);
ctx.closePath();
ctx.lineWidth = 6;
ctx.stroke();
РезÑлÑÑаÑ
СпеÑиÑикаÑии
| Specification |
|---|
| HTML > # dom-context-2d-closepath-dev > |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
СмоÑÑиÑе Ñакже
- ÐнÑеÑÑейÑ, опÑеделÑÑÑий ÑÑÐ¾Ñ Ð¼ÐµÑод:
CanvasRenderingContext2D CanvasRenderingContext2D.beginPath()