用html贝塞尔曲线绘制海豚,echarts 用 bezier-js 绘制贝塞尔曲线

确实有点好看了

bezier-js 调用时 是 起点+中间点+终点的方式, 一般两个中间点就够了

新主题确实好看了一点

6489e346d56422e3ec6304fb1ad8c657.png

bezierjs

import { onMounted } from "vue";

import { Bezier } from "bezier-js";

import * as echarts from "echarts";

onMounted(() => {

console.log("Bezier", Bezier, echarts);

// const b = new Bezier([10, 20, 30, 40]);

// const b = new Bezier([100, 40, -500, 30, 200, 200]);

const b = new Bezier(100, 25, 10, 90, -100, 90, 200, 200);

const size = 1000;

const data = Array(size - 1)

.fill(0)

.map((_, k) => Object.values(b.get(k / size)));

const canvas = document.getElementById("chart")! as HTMLCanvasElement;

canvas.width = 1000;

canvas.height = 800;

const myChart = echarts.init(canvas);

// 指定图表的配置项和数据

const option = {

xAxis: {

type: "value",

},

yAxis: {

type: "value",

},

series: [

{

data: data,

type: "line",

},

],

};

// 使用刚指定的配置项和数据显示图表。

myChart.setOption(option);

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很好,对于您的问题,我们可以通过JavaScript和Canvas API使用贝塞尔曲线绘制花朵。以下是一个简单的示例代码来实现这一点: ```javascript var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); // 绘制一朵花 function drawFlower(x, y, size) { // 花瓣 for (var i = 0; i < 6; i++) { ctx.beginPath(); ctx.moveTo(x, y); ctx.bezierCurveTo(x - size / 2, y - size / 2, x + size / 2, y - size / 2, x, y); ctx.fillStyle = "pink"; ctx.fill(); ctx.closePath(); ctx.rotate(Math.PI / 3); } // 花心 ctx.beginPath(); ctx.arc(x, y, size / 5, 0, 2 * Math.PI); ctx.fillStyle = "yellow"; ctx.fill(); ctx.closePath(); } // 在画布上随机绘制多朵花 for (var i = 0; i < 10; i++) { var x = Math.random() * canvas.width; var y = Math.random() * canvas.height; var size = Math.random() * 50 + 50; drawFlower(x, y, size); } ``` 在这个例子中,我们将绘制一朵花的代码封装在了一个名为 `drawFlower` 的函数中。该函数接收三个参数:花的中心点坐标 `(x, y)`,以及花的大小 `size`。在函数中,我们使用 `bezierCurveTo` 方法来绘制花瓣的曲线形状,并使用 `fill` 方法来填充花瓣的颜色。然后,我们通过旋转画布来绘制剩余的花瓣。最后,我们使用 `arc` 方法来绘制花心,并将其填充为黄色。 在主程序中,我们使用 `Math.random` 方法来随机生成花的位置和大小,并在画布上绘制多个花朵。 希望这个例子能够帮助您更好地理解如何使用Canvas和贝塞尔曲线绘制花朵。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值