首页 > 其他分享 >请使用canvas画一个椭圆

请使用canvas画一个椭圆

时间:2024-12-09 09:44:37浏览次数:9  
标签:canvas 椭圆 ctx radius 使用 PI ellipse Math

<!DOCTYPE html>
<html>
<head>
<title>Canvas Ellipse</title>
</head>
<body>

<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.
</canvas>

<script>
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");

// Draw an ellipse
ctx.beginPath();
ctx.ellipse(150, 75, 50, 30, 0, 0, 2 * Math.PI); // x, y, radiusX, radiusY, rotation, startAngle, endAngle
ctx.stroke();


// Example with fill and different color
ctx.beginPath();
ctx.ellipse(100, 75, 40, 20, Math.PI / 4, 0, 2 * Math.PI); // Rotated ellipse
ctx.fillStyle = "red";
ctx.fill();


// Example with a partial ellipse (arc)
ctx.beginPath();
ctx.ellipse(220, 75, 30, 40, 0, Math.PI/2 , 3*Math.PI/2); // Half ellipse, downwards
ctx.strokeStyle = "blue";
ctx.lineWidth = 3;  // Set line thickness
ctx.stroke();



</script>

</body>
</html>

This code creates an HTML5 canvas and draws three ellipses:

  1. A simple black ellipse: Centered at (150, 75) with horizontal radius 50 and vertical radius 30.
  2. A filled red rotated ellipse: Centered at (100, 75), rotated by 45 degrees (Math.PI / 4 radians), with horizontal radius 40 and vertical radius 20.
  3. A blue half-ellipse arc: Centered at (220,75) with horizontal radius 30 and vertical radius 40. It draws the bottom half of the ellipse using Math.PI/2 as the start angle and 3*Math.PI/2 as the end angle. It also demonstrates setting the line thickness.

This provides a few examples of how to use the ellipse() method with different parameters and styling options. Remember to include this code within the <body> tags of your HTML file. You can adjust the parameters to create ellipses with different sizes, positions, rotations, and colors.

标签:canvas,椭圆,ctx,radius,使用,PI,ellipse,Math
From: https://www.cnblogs.com/ai888/p/18594259

相关文章

  • 请举例说明width:fit-conten有什么使用场景
    width:fit-content在前端开发中非常有用,它允许元素根据其内容的宽度自适应大小,避免了硬编码宽度带来的问题。以下是一些使用场景:1.动态内容的容器:按钮:当按钮文本长度不固定时,width:fit-content可以确保按钮的宽度正好包裹住文本,并随着文本的变化而调整。例如,多语言......
  • vue2使用openlayers10.3.0版本组包
     "node-polyfill-webpack-plugin":"2.0.1","@vue/cli-plugin-babel":"~5.0.0","@vue/cli-plugin-eslint":"~5.0.0","@vue/cli-service":"~5.0.0","node-polyfill-webpack-plu......
  • 请使用canvas画一个渐变的长方形
    <!DOCTYPEhtml><html><head><title>渐变长方形</title></head><body><canvasid="myCanvas"width="300"height="150"style="border:1pxsolid#d3d3d3;">Yourbrowserdoes......
  • 当页面中使用application/xhtml+xml会出现什么问题吗?
    使用application/xhtml+xml作为MIME类型在前端开发中可能会出现一些问题,尽管在理想情况下它应该提供更严格的验证和结构。主要问题源于浏览器对XHTML的支持不一致以及与旧版浏览器和服务器的兼容性问题。以下是可能出现的一些问题:浏览器兼容性:并非所有浏览器都完全支......
  • 模板函数使用is_same的注意事项
    在模板函数中使用is_same判断类型的话,编译器会实例化所有路径,即使某些路径在运行时不会被执行。这意味着编译器会检查所有的分支,确保它们都是有效的。例如如果存在从string转为int的路径,即便T为string时不会进入该路径,依旧会编译失败。template<classT>voidf(){ if(is_sa......
  • 使用Python实现科学计算工具:数据分析的利器
    大家好!我的新专栏《Python进阶》正式启动啦!这是一个专为那些渴望提升Python技能的朋友们量身打造的专栏,无论你是已经有一定基础的开发者,还是希望深入挖掘Python潜力的爱好者,这里都将是你不可错过的宝藏。在这个专栏中,你将会找到:深入解析:每一篇文章都将深入剖析Python的......
  • 使用flex实现一个自适应的九官格
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Flex九宫格</title>......
  • Gpt使用心得
    一、AI工具在各方面对我们的帮助。  AI工具通过提高效率、增强安全性、个性化服务和提供决策支持,正在逐步改变我们的生活和工作方式。随着技术的不断进步,这些工具的应用将更加广泛和深入。  例如在:    工作中,可以①AI辅助设计,提供创意灵感和设计选项②内容创作辅助,如......
  • 使用js写一个方法生成0000-9999一万个数字(4位数)
    functiongenerateFourDigitNumbers(){constnumbers=[];for(leti=0;i<=9999;i++){//UsepadStarttoensureeachnumberis4digitslongconstnumberString=i.toString().padStart(4,'0');numbers.push(numberString);......
  • 使用try catch哪些异常是捕获不到的?哪些能捕获到?捕获不到的要怎样才能捕获到?
    在前端开发中,使用JavaScript的try...catch语句可以捕获到大多数运行时错误(runtimeerrors),也称为异常(exceptions)。然而,它无法捕获以下几种情况:语法错误(SyntaxErrors):这些错误发生在代码解析阶段,在代码执行之前。try...catch无法处理它们,因为代码本身就无法被正确解析......