--- title: CanvasRenderingContext2D.arc() slug: Web/API/CanvasRenderingContext2D/arc translation_of: Web/API/CanvasRenderingContext2D/arc --- <div>{{APIRef}}</div> <p><span class="notranslate">El método <code><strong>CanvasRenderingContext2D</strong></code> <strong><code>.arc()</code></strong> de la API de Canvas 2D añade un arco a la trayectoria centrada en la posición <em>(x, y)</em> con el radio <em>r</em> comenzando en <em>startAngle</em> y terminando en <em>endAngle que</em> va en la dirección dada en sentido <em>antihorario</em> (predeterminado en sentido horario) .</span></p> <h2 id="Sintaxis"><span class="highlight-span"><span class="notranslate">Sintaxis</span></span></h2> <pre class="syntaxbox"><span class="notranslate"><var>Void <em>ctx</em> .arc (x, y, radio, startAngle, endAngle, antihorario);</var></span></pre> <h3 id="Parámetros"><span class="notranslate">Parámetros</span></h3> <dl> <dt><code>x</code></dt> <dd><span class="notranslate">La coordenada x del centro del arco.</span></dd> <dt><code>y</code></dt> <dd><span class="notranslate">La coordenada y del centro del arco.</span></dd> <dt><code>radius</code></dt> <dd><span class="notranslate">El radio del arco.</span></dd> <dt><code>startAngle</code></dt> <dd><span class="notranslate">El ángulo en el que se inicia el arco, medido en sentido horario desde el eje x positivo y expresado en radianes.</span></dd> <dt><code>endAngle</code></dt> <dd><span class="notranslate">El ángulo en el que termina el arco, medido en sentido horario desde el eje x positivo y expresado en radianes.</span></dd> <dt><span class="notranslate"><code>anticlockwise</code> <span class="inlineIndicator optional optionalInline">Opcional</span></span></dt> <dd><span class="notranslate">Un <a href="https://translate.googleusercontent.com/translate_c?depth=1&hl=es&rurl=translate.google.com&sl=auto&sp=nmt4&tl=es&u=https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Boolean&usg=ALkJrhiYmhdjPGE_uAW2GdnX2VQcrdMSOA" title="El objeto booleano es un contenedor de objetos para un valor booleano."><code>Boolean</code></a> opcional que, si es <code>true</code> , hace que el arco se dibuje en sentido contrario a las agujas del reloj entre los dos ángulos.</span> <span class="notranslate"> De forma predeterminada, se dibuja en el sentido de las agujas del reloj.</span></dd> </dl> <h2 id="Ejemplos"><span class="highlight-span"><span class="notranslate">Ejemplos</span></span></h2> <h3 id="Using_the_arc_method" name="Using_the_arc_method"><span class="notranslate">Utilizando el método del <code>arc</code></span></h3> <p><span class="notranslate">Esto es sólo un simple fragmento de código dibujando un círculo.</span></p> <h4 id="HTML">HTML</h4> <pre class="brush: html"><canvas id="canvas"></canvas> </pre> <h4 id="JavaScript">JavaScript</h4> <pre class="brush: js">var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.arc(75, 75, 50, 0, 2 * Math.PI); ctx.stroke(); </pre> <p><span class="notranslate">Edite el código de abajo y vea su actualización de cambios en vivo en el lienzo:</span></p> <div class="hidden"> <h6 id="Playable_code" name="Playable_code">Playable code</h6> <pre class="brush: html"><canvas id="canvas" width="400" height="200" class="playable-canvas"></canvas> <div class="playable-buttons"> <input id="edit" type="button" value="Edit" /> <input id="reset" type="button" value="Reset" /> </div> <textarea id="code" class="playable-code"> ctx.beginPath(); ctx.arc(50, 50, 50, 0, 2 * Math.PI, false); ctx.stroke();</textarea> </pre> <pre class="brush: js">var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); var textarea = document.getElementById("code"); var reset = document.getElementById("reset"); var edit = document.getElementById("edit"); var code = textarea.value; function drawCanvas() { ctx.clearRect(0, 0, canvas.width, canvas.height); eval(textarea.value); } reset.addEventListener("click", function() { textarea.value = code; drawCanvas(); }); edit.addEventListener("click", function() { textarea.focus(); }) textarea.addEventListener("input", drawCanvas); window.addEventListener("load", drawCanvas); </pre> </div> <p>{{ EmbedLiveSample('Playable_code', 700, 360) }}</p> <h3 id="Different_shapes_demonstrated" name="Different_shapes_demonstrated"><span class="notranslate">Diferentes formas demostradas</span></h3> <p><span class="notranslate">En este ejemplo se dibujan diferentes formas para mostrar lo que es posible al usar <code>arc()</code> .</span></p> <div class="hidden"> <h6 id="HTML_2">HTML</h6> <pre class="brush: html"><canvas id="canvas" width="150" height="200"></canvas> </pre> <h6 id="JavaScript_2">JavaScript</h6> </div> <pre class="brush: js">var canvas = document.getElementById('canvas'); var ctx = canvas.getContext('2d'); // Draw shapes for (var i = 0; i < 4; i++) { for(var j = 0; j < 3; j++) { ctx.beginPath(); var x = 25 + j * 50; // x coordinate var y = 25 + i * 50; // y coordinate var radius = 20; // Arc radius var startAngle = 0; // Starting point on circle var endAngle = Math.PI + (Math.PI * j) /2; // End point on circle var anticlockwise = i % 2 == 1; // Draw anticlockwise ctx.arc(x, y, radius, startAngle, endAngle, anticlockwise); if (i > 1) { ctx.fill(); } else { ctx.stroke(); } } }</pre> <p>{{ EmbedLiveSample('Different_shapes_demonstrated', 160, 210, "https://mdn.mozillademos.org/files/204/Canvas_arc.png") }}</p> <h2 id="Specifications">Specifications</h2> <table class="standard-table"> <tbody> <tr> <th scope="col"><span class="notranslate">Especificación</span></th> <th scope="col"><span class="notranslate">Estado</span></th> <th scope="col"><span class="notranslate">Comentario</span></th> <td><span class="notranslate"><a class="external external-icon" href="https://translate.googleusercontent.com/translate_c?depth=1&hl=es&rurl=translate.google.com&sl=auto&sp=nmt4&tl=es&u=https://html.spec.whatwg.org/multipage/scripting.html&usg=ALkJrhjTH2Ij7ayPxhvtaZrELWW-GupMRw#dom-context-2d-arc" hreflang="en" lang="en">WHATWG HTML Estándar de vida</a></span><br> <span class="notranslate"><a class="external external-icon" href="https://translate.googleusercontent.com/translate_c?depth=1&hl=es&rurl=translate.google.com&sl=auto&sp=nmt4&tl=es&u=https://html.spec.whatwg.org/multipage/scripting.html&usg=ALkJrhjTH2Ij7ayPxhvtaZrELWW-GupMRw#dom-context-2d-arc" hreflang="en" lang="en"><small lang="en-US">La definición de 'CanvasRenderingContext2D.arc' en esa especificación.</small></a></span></td> <td><span class="notranslate"><span class="spec-Living">Estándar de vida</span></span></td> <th scope="col">Status</th> <th scope="col">Comment</th> </tr> <tr> <td>{{SpecName('HTML WHATWG', "scripting.html#dom-context-2d-arc", "CanvasRenderingContext2D.arc")}}</td> <td>{{Spec2('HTML WHATWG')}}</td> <td> </td> </tr> </tbody> </table> <h2 id="Compatibilidad_del_navegador"><span class="highlight-span"><span class="notranslate">Compatibilidad del navegador</span></span></h2> {{Compat("api.CanvasRenderingContext2D.arc")}} <h2 class="highlight-spanned" id="Notas_específicas_de_Gecko"><span class="highlight-span"><span class="notranslate">Notas específicas de Gecko</span> </span></h2> <p><span class="notranslate">Comenzando con Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1):</span></p> <ul> <li><span class="notranslate">El parámetro <code>anticlockwise</code> es opcional,</span></li> <li><span class="notranslate">Especificar un radio negativo ahora arroja un error <a href="https://translate.googleusercontent.com/translate_c?depth=1&hl=es&rurl=translate.google.com&sl=auto&sp=nmt4&tl=es&u=https://developer.mozilla.org/en-US/docs/Web/API/DOMError&usg=ALkJrhjJXFH50zmUpD4NUbH_0bFfrCdTxg" title="La interfaz DOMError describe un objeto de error que contiene un nombre de error."><code>IndexSizeError</code></a> ("Índice o tamaño es negativo o mayor que la cantidad permitida").</span></li> </ul> <h2 class="highlight-spanned" id="Ver_también"><span class="highlight-span"><span class="notranslate">Ver también</span> </span></h2> <ul> <li><span class="notranslate">La interfaz que lo define, <a href="https://translate.googleusercontent.com/translate_c?depth=1&hl=es&rurl=translate.google.com&sl=auto&sp=nmt4&tl=es&u=https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D&usg=ALkJrhi38xECKVHgn-8Z40wUeE-veK4pog" title='Para obtener un objeto de esta interfaz, llame a getContext () en un elemento &lt;canvas>, proporcionando "2d" como argumento:'><code>CanvasRenderingContext2D</code></a></span></li> </ul>