javascript - 用颜色填充随机大小的矩形时如何制作边框?
问题描述
我正在用 javascript 制作一个非常基本的绘画程序。我准备了一些绘图工具,并且想要在矩形周围有一个黑色边框。矩形填充了随机颜色。如何添加边框?
我试图添加两个矩形。而且我尝试过使用strokeStyle和lineWidth,但到目前为止还没有运气。
用随机颜色填充矩形的代码效果很好。
tools.rect = function () {
var tool = this;
this.started = false;
this.mousedown = function (ev) {
tool.started = true;
tool.x0 = ev._x;
tool.y0 = ev._y;
};
this.mousemove = function (ev) {
if (!tool.started) {
return;
}
var x = Math.min(ev._x, tool.x0),
y = Math.min(ev._y, tool.y0),
w = Math.abs(ev._x - tool.x0),
h = Math.abs(ev._y - tool.y0);
context.clearRect(0, 0, canvas.width, canvas.height);
if (!w || !h) {
return;
}
context.fillStyle = 'hsl(' + 360 * Math.random() + ', 50%, 50%)';
context.fillRect(x, y, w, h);
};
this.mouseup = function (ev) {
if (tool.started) {
tool.mousemove(ev);
tool.started = false;
drawCanvas();
}
};
};
但是当我尝试在 context.fillRect 之后添加这些行时......
context.strokeStyle = "#000";
context.lineWidth = 3;
什么都没有发生。
我想也许fillStyle和fillRect隐藏了strokeStyle和lineWidth?但我不知道如何避免这种情况发生?</p>
解决方案
strokeRect()
填写后需要调用:
(...)
context.fillRect(x, y, w, h);
context.strokeStyle = "#000";
context.lineWidth = 3;
context.strokeRect(x, y, w, h);
推荐阅读
- php - 如果 PDO 中的变量为空或空变量,则防止更新列
- java - 我在java中尝试这段代码任何人都可以解释输出的差异
- c++ - 没有实现纯虚函数的派生类的编译不会给出任何错误
- c - 数据类型 int 仅在 2^31 之前保持正数,一旦达到 2^32,它就会变为负数,为什么?
- scala - 将数据流 InputDStream[ConsumerRecord[String, String]] 转换为 Twitter 对象
- sql - 选择不同的值并只带上最新的值
- python - 如何设置一个精确的浮点数作为 Matplotlib 上 y 轴限制的比例因子?
- java - JPA - 插入后的 PK 属性问题
- sql - 在控制台上出现以下错误“150”外键约束格式不正确“”
- android - Glide 没有将“joeschmoe”头像加载到 ImageView 中