feat: 股票球跌幅改为绿色空心球体

涨: 保留分级实心(覆盖数越多越红) + 红色光晕;
跌: 绿色空心球(绿描边+内部淡绿留白) + 绿色光晕。

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Sakurasan
2026-08-11 00:59:07 +08:00
co-authored by Claude
parent dfcce3abaf
commit 776ab55fc3
+28 -17
View File
@@ -406,23 +406,34 @@ function drawStockNodes(
ctx.globalAlpha = 1;
ctx.fill();
// 外圈淡填充
const fill = cover >= 7 ? "#dc2626" : cover >= 5 ? "#ef4444" : "#f97316";
ctx.beginPath();
ctx.arc(x, y, pr, 0, TAU);
ctx.fillStyle = fill;
ctx.globalAlpha = 0.35 * alpha;
ctx.fill();
// 描边
ctx.strokeStyle = cover >= 2 ? "#f59e0b" : "#94a3b8";
ctx.lineWidth = cover >= 2 ? (cover >= 4 ? 2 : 1.5) : 0.5;
ctx.globalAlpha = alpha;
ctx.stroke();
// 内实心
ctx.beginPath();
ctx.arc(x, y, pr, 0, TAU);
ctx.globalAlpha = (cover >= 2 ? 0.9 : 0.55) * alpha;
ctx.fill();
if (isPos) {
// 涨:外圈淡填充 + 分级描边 + 内实心(覆盖数越多越红)
const fill = cover >= 7 ? "#dc2626" : cover >= 5 ? "#ef4444" : "#f97316";
ctx.beginPath();
ctx.arc(x, y, pr, 0, TAU);
ctx.fillStyle = fill;
ctx.globalAlpha = 0.35 * alpha;
ctx.fill();
ctx.strokeStyle = cover >= 2 ? "#f59e0b" : "#94a3b8";
ctx.lineWidth = cover >= 2 ? (cover >= 4 ? 2 : 1.5) : 0.5;
ctx.globalAlpha = alpha;
ctx.stroke();
ctx.beginPath();
ctx.arc(x, y, pr, 0, TAU);
ctx.globalAlpha = (cover >= 2 ? 0.9 : 0.55) * alpha;
ctx.fill();
} else {
// 跌:绿色空心球(仅描边,内部淡绿留白)
ctx.beginPath();
ctx.arc(x, y, pr, 0, TAU);
ctx.strokeStyle = "#22c55e";
ctx.lineWidth = 2;
ctx.globalAlpha = dim ? 0.15 : 1;
ctx.stroke();
ctx.fillStyle = "#22c55e";
ctx.globalAlpha = dim ? 0.02 : 0.1;
ctx.fill();
}
// 选中外环
if (isActive) {
ctx.beginPath();