我有以下代码应该在图像中绘制线条。我的代码是:
js prettyprint-override">const { createCanvas } = require('canvas')
const fs = require('fs')
const width = 500
const height = 600
const canvas = createCanvas(width, height)
const ctx = canvas.getContext('2d')
ctx.fillStyle = '#fff'
ctx.fillRect(0, 0, width, height)
ctx.beginPath();
ctx.moveTo(0, 0);
let test = ['53.266179561615,54.9594819545746', '53.266179561615,54.9594819545746']
for (let index = 0; index < test.length; index++) {
let coordinates = test[index]
ctx.lineTo(coordinates)
ctx.stroke()
}
const buffer = canvas.toBuffer('image/png')
fs.writeFileSync('./image.png', buffer)
如果我编写ctx.lineto(53.266179561615,54.9594819545746)
,它实际上可以工作。但是我的数组很长并且来自一个输入。
let test = ['53.266179561615,54.9594819545746', '53.266179561615,54.9594819545746']
是字符串数组,而ctx.lineTo(x,y)
方法以两个数字作为参数。在您的代码中会发生以下情况:
for (let index = 0; index < test.length; index++) {
let coordinates = test[index]
// coordinates is now '53.266179561615,54.9594819545746'
ctx.lineTo(coordinates)
// you call ctx.lineTo('53.266179561615,54.9594819545746'), notice the qoutes.
// That is a single argument, a string.
...
您可能希望使用坐标数组,这样就可以正确调用函数。
像这样:
let coordinates = [[53.266179561615,54.9594819545746], [53.266179561615,54.9594819545746]];
for (let index = 0; index < coordinates.length; index++) {
let c = coordinates[index]
ctx.lineTo(c[0], c[1])
ctx.stroke()
}
有没有可能通过它们的方程式在画布中画出曲线呢?如果是,怎么做?假设我有一个数学方程y=0,5*x^2,如何打印方程的图形? 我尝试使用和方法,但未成功。
在画布上画画是非常好的。即使橡皮擦也能工作得很好。问题是当画布保存为图像时,它画的是黑线,而不是橡皮擦。 为了更好地理解,我添加了屏幕、镜头和代码。 1.在擦除图的同时- 我不明白为什么橡皮移动被替换为黑色,而保存画布作为一个图像。
实际上,我可以使用函数来完成。我从“HTML5画布-如何在图像背景上画一条线?”中得到的东西。但是我需要在不使用from函数的情况下绘制图像,如下所示:
因此,我正在创建一个cordova应用程序,在该应用程序中,我从iphone库中拍摄一张照片,将其绘制到画布上,并向其添加另一张图像,以便将其保存为一张照片。到目前为止,我从iphone照片库中绘制的照片可以毫无问题地绘制到画布上,但是第二张图片没有。 当我加载第二张图像时,它首先被添加到具有绝对定位的div中,以便将其移动到我想要的任何位置。之后,我得到了实际的图像,它的来源和位置,并尝试将其绘
请帮助我在Android SDK上实现同样的结果。
我可以绘制图像,但我如何旋转该图像例如45度并绘制它,然后绘制另一个图像与-50度旋转在同一画布? 不适用于我,因为它会旋转所有画布内容。