当前位置: 首页 > article >正文

canvas绘制圆角矩形

以下是一个示例代码,展示了如何使用JavaScript在canvas上绘制带有圆角的蓝色矩形,并且在页面上放置一个div元素(这里只是简单示例让divcanvas在视觉上有展示关联,实际应用场景中它们的布局和交互可以根据具体需求再做细致调整):

HTML结构部分

首先创建canvas元素用于绘图以及一个div元素,示例代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Canvas with Div</title>
  <style>
    canvas {
      border: 1px solid black;
    }

    div {
      width: 100px;
      height: 50px;
      background-color: lightgray;
      text-align: center;
      line-height: 50px;
      position: absolute;
      top: 80px; /* 示例位置,可根据实际调整 */
      left: 100px; /* 示例位置,可根据实际调整 */
    }
  </style>
</head>

<body>
  <canvas id="myCanvas" width="300" height="200"></canvas>
  <div id="myDiv">示例Div</div>
  <script src="script.js"></script>
</body>

</html>

JavaScript代码部分(在script.js文件中,也可以直接写在HTML的<script>标签内)

以下代码实现了在canvas上绘制带圆角的蓝色矩形的功能:

// 获取canvas元素
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');

// 设置矩形的填充颜色为蓝色
ctx.fillStyle = 'blue';

// 绘制带圆角的矩形
// 定义圆角半径,可根据需要调整大小
const cornerRadius = 10;
const x = 50;
const y = 50;
const width = 200;
const height = 100;

// 开始绘制路径
ctx.beginPath();
// 移动到左上角
ctx.moveTo(x + cornerRadius, y);
// 绘制上边线
ctx.lineTo(x + width - cornerRadius, y);
// 绘制右上角圆角
ctx.arc(x + width - cornerRadius, y + cornerRadius, cornerRadius, Math.PI * 1.5, Math.PI * 2);
// 绘制右边线
ctx.lineTo(x + width, y + height - cornerRadius);
// 绘制右下角圆角
ctx.arc(x + width - cornerRadius, y + height - cornerRadius, cornerRadius, 0, Math.PI * 0.5);
// 绘制下边线
ctx.lineTo(x + cornerRadius, y + height);
// 绘制左下角圆角
ctx.arc(x + cornerRadius, y + height - cornerRadius, cornerRadius, Math.PI * 0.5, Math.PI);
// 绘制左边线
ctx.lineTo(x, y + cornerRadius);
// 绘制左上角圆角
ctx.arc(x + cornerRadius, y + cornerRadius, cornerRadius, Math.PI, Math.PI * 1.5);
// 关闭路径
ctx.closePath();

// 填充矩形
ctx.fill();

在上述代码中:

  • 首先获取了canvas元素及其绘图上下文。
  • 接着设置了填充颜色为蓝色。
  • 然后通过一系列路径绘制的操作,先移动到相应起始点,再通过绘制直线和圆弧的组合来构建出带圆角的矩形路径,最后关闭路径并进行填充操作,从而绘制出带圆角的蓝色矩形。

关于div元素,在HTML中的style部分简单设置了它的样式(宽度、高度、背景色、文本对齐等)以及通过绝对定位指定了大致的位置(这里的位置坐标可以按照实际想要的布局效果进行更改)。

你可以根据实际需求进一步调整矩形的尺寸、圆角半径、颜色以及div的样式、内容和布局位置等,让整个页面呈现出符合要求的效果。


http://www.kler.cn/a/403749.html

相关文章:

  • 如何在 PyCharm 中配置 HTTP 代理以确保网络连接的顺畅性
  • Spring Boot + Vue 基于 RSA 的用户身份认证加密机制实现
  • 07点积与叉积
  • 上海市计算机学会竞赛平台2024年11月月赛丙组添加删除
  • 「Mac玩转仓颉内测版21」基础篇1 - 仓颉程序的基本组成
  • java-搜索算法
  • 修改一下达梦disql 提示符
  • OneToMany 和 ManyToOne
  • 使用数据库批量插入与循环单个插入:优势与区别
  • MyBatis的resultType和resultMap区别
  • 力扣 LeetCode 112. 路径总和(Day8:二叉树)
  • 失落的Apache JDBM(Java Database Management)
  • 【项目实战】基于 LLaMA-Factory 通过 LoRA 微调 Qwen2
  • 2024信创数据库TOP30之蚂蚁集团OceanBase
  • 最新智能AI问答运营系统(SparkAi)一站式AIGC系统,GPT-4.0/GPT-4o多模态模型+联网搜索提问+AI绘画+管理后台,用户会员套餐
  • Excel中批量替换字符大PK:Excel VS. Python
  • c ++零基础可视化——vector
  • WebSocket详解、WebSocket入门案例
  • React渲染流程与更新diff算法
  • AMD(Xilinx) FPGA配置Flash大小选择
  • Linux:权限相关知识详解
  • 基于yolov8、yolov5的茶叶等级检测识别系统(含UI界面、训练好的模型、Python代码、数据集)
  • hhdb数据库介绍(9-26)
  • 当mysql的slave无法同步master数据时,如何基本不断业务重置主从同步关系
  • MySQL社区版的启动与连接
  • 数据集-目标检测系列- 花卉 鸡蛋花 检测数据集 frangipani >> DataBall