UNPKG

pixi.js

Version:

<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">

1 lines 3.6 kB
{"version":3,"file":"buildArcTo.mjs","sources":["../../../../../src/scene/graphics/shared/buildCommands/buildArcTo.ts"],"sourcesContent":["import { buildArc } from './buildArc';\n\n/**\n * The arcTo() method creates an arc/curve between two tangents on the canvas.\n *\n * \"borrowed\" from https://code.google.com/p/fxcanvas/ - thanks google!\n * @param points\n * @param x1\n * @param y1\n * @param x2\n * @param y2\n * @param radius\n * @internal\n */\nexport function buildArcTo(\n points: number[],\n x1: number, y1: number,\n x2: number, y2: number,\n radius: number,\n): void\n{\n const fromX = points[points.length - 2];\n const fromY = points[points.length - 1];\n\n const a1 = fromY - y1;\n const b1 = fromX - x1;\n const a2 = y2 - y1;\n const b2 = x2 - x1;\n const mm = Math.abs((a1 * b2) - (b1 * a2));\n\n if (mm < 1.0e-8 || radius === 0)\n {\n if (points[points.length - 2] !== x1 || points[points.length - 1] !== y1)\n {\n points.push(x1, y1);\n }\n\n return;\n }\n\n const dd = (a1 * a1) + (b1 * b1);\n const cc = (a2 * a2) + (b2 * b2);\n const tt = (a1 * a2) + (b1 * b2);\n const k1 = radius * Math.sqrt(dd) / mm;\n const k2 = radius * Math.sqrt(cc) / mm;\n const j1 = k1 * tt / dd;\n const j2 = k2 * tt / cc;\n const cx = (k1 * b2) + (k2 * b1);\n const cy = (k1 * a2) + (k2 * a1);\n const px = b1 * (k2 + j1);\n const py = a1 * (k2 + j1);\n const qx = b2 * (k1 + j2);\n const qy = a2 * (k1 + j2);\n const startAngle = Math.atan2(py - cy, px - cx);\n const endAngle = Math.atan2(qy - cy, qx - cx);\n\n buildArc(points,\n (cx + x1),\n (cy + y1),\n radius,\n startAngle,\n endAngle,\n b1 * a2 > b2 * a1\n );\n}\n"],"names":[],"mappings":";;;AAcO,SAAS,WACZ,MAAA,EACA,EAAA,EAAY,EAAA,EACZ,EAAA,EAAY,IACZ,MAAA,EAEJ;AACI,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA;AACtC,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA;AAEtC,EAAA,MAAM,KAAK,KAAA,GAAQ,EAAA;AACnB,EAAA,MAAM,KAAK,KAAA,GAAQ,EAAA;AACnB,EAAA,MAAM,KAAK,EAAA,GAAK,EAAA;AAChB,EAAA,MAAM,KAAK,EAAA,GAAK,EAAA;AAChB,EAAA,MAAM,KAAK,IAAA,CAAK,GAAA,CAAK,EAAA,GAAK,EAAA,GAAO,KAAK,EAAG,CAAA;AAEzC,EAAA,IAAI,EAAA,GAAK,IAAA,IAAU,MAAA,KAAW,CAAA,EAC9B;AACI,IAAA,IAAI,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA,KAAM,EAAA,IAAM,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAC,CAAA,KAAM,EAAA,EACtE;AACI,MAAA,MAAA,CAAO,IAAA,CAAK,IAAI,EAAE,CAAA;AAAA,IACtB;AAEA,IAAA;AAAA,EACJ;AAEA,EAAA,MAAM,EAAA,GAAM,EAAA,GAAK,EAAA,GAAO,EAAA,GAAK,EAAA;AAC7B,EAAA,MAAM,EAAA,GAAM,EAAA,GAAK,EAAA,GAAO,EAAA,GAAK,EAAA;AAC7B,EAAA,MAAM,EAAA,GAAM,EAAA,GAAK,EAAA,GAAO,EAAA,GAAK,EAAA;AAC7B,EAAA,MAAM,EAAA,GAAK,MAAA,GAAS,IAAA,CAAK,IAAA,CAAK,EAAE,CAAA,GAAI,EAAA;AACpC,EAAA,MAAM,EAAA,GAAK,MAAA,GAAS,IAAA,CAAK,IAAA,CAAK,EAAE,CAAA,GAAI,EAAA;AACpC,EAAA,MAAM,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA;AACrB,EAAA,MAAM,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA;AACrB,EAAA,MAAM,EAAA,GAAM,EAAA,GAAK,EAAA,GAAO,EAAA,GAAK,EAAA;AAC7B,EAAA,MAAM,EAAA,GAAM,EAAA,GAAK,EAAA,GAAO,EAAA,GAAK,EAAA;AAC7B,EAAA,MAAM,EAAA,GAAK,MAAM,EAAA,GAAK,EAAA,CAAA;AACtB,EAAA,MAAM,EAAA,GAAK,MAAM,EAAA,GAAK,EAAA,CAAA;AACtB,EAAA,MAAM,EAAA,GAAK,MAAM,EAAA,GAAK,EAAA,CAAA;AACtB,EAAA,MAAM,EAAA,GAAK,MAAM,EAAA,GAAK,EAAA,CAAA;AACtB,EAAA,MAAM,aAAa,IAAA,CAAK,KAAA,CAAM,EAAA,GAAK,EAAA,EAAI,KAAK,EAAE,CAAA;AAC9C,EAAA,MAAM,WAAW,IAAA,CAAK,KAAA,CAAM,EAAA,GAAK,EAAA,EAAI,KAAK,EAAE,CAAA;AAE5C,EAAA,QAAA;AAAA,IAAS,MAAA;AAAA,IACJ,EAAA,GAAK,EAAA;AAAA,IACL,EAAA,GAAK,EAAA;AAAA,IACN,MAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,EAAA,GAAK,KAAK,EAAA,GAAK;AAAA,GACnB;AACJ;;;;"}