cursor - 使 PGraphic 对象成为光标
问题描述
这是我的问题的后续:使光标成为自绘图像。
我有一个绘画应用程序。最新的工作版本可以在这里找到:https ://knowledgeablekangaroo.github.io/paint-a-picture-backup/ ,代码可以在F12 > Sources > paint-a-picture.js中找到。
用户可以选择颜色、设置背景、设置厚度、形状和不透明度。还有一个橡皮擦功能。我希望有更好的用户体验,所以我试图在下面绘制橡皮擦作为光标。如果光标不起作用,我需要一些不会弄脏的东西。
按照我的编程方式,“油漆区域”内的任何地方(控制中心上方和托盘下方)都会涂抹 -background()
位于绘图之外。
var pg = createGraphics(pgDimensions.w, pgDimensions.h, JAVA2D);
pg.beginDraw();
pg.fill(255, 200, 255);
pg.strokeWeight(2);
pg.rect(0, 0, pgDimensions.w, pgDimensions.h);
pg.fill(0);
pg.textAlign(CENTER, CENTER);
pg.text("ERASER", pgDimensions.w / 2, pgDimensions.h / 2);
pg.endDraw();
我使用该createGraphics()
函数创建了一个 PGraphics 对象。重点是显示橡皮擦,而这显示了我在上面的 pGraphic 中绘制的橡皮擦。
var drawBrush = function() {
fill(currentColor);
noStroke();
shapes.forEach(function (element, index) {
if (pshape == index) {
element.brush();
}
});
if (C === bgColor) {
image(pg, mouseX - pgDimensions.w / 2, mouseY - pgDimensions.h / 2);
}
};
研究
解决方案
将图形存储在pg
变量中后,您可以使用以下image()
函数绘制它:
image(pg, mouseX, mouseY);
这是一个小例子,展示了我在说什么:
var pg;
function setup() {
createCanvas(400, 400);
pg = createGraphics(100, 100);
pg.ellipse(50, 50, 100, 100);
}
function draw() {
background(220);
image(pg, mouseX, mouseY);
}
推荐阅读
- json - 尝试通过 API Gateway 将 Log 插入 Cloudwatch 时出现 SerializationException
- loopbackjs - 如何为 LoopbackJS 应用程序中的所有模型定义全局应用的 ACL 策略
- spring - 从控制器运行弹簧批处理作业
- python - python中效率低下的代码分配了很多内存
- c# - 如何优化我的代码以更快地运行
- javascript - 如何知道一个数字达到限制整数
- android - 为什么弹出窗口未在所有应用程序中显示
- python - 如何使用python将html文件转换为json
- c# - 如何使用 Azure v2 函数生成基于模板的 Excel 文件
- mysql - 在MySql中关闭一天的Spring数据jpa查询参数LocalDate