好的,我有一个很难解决的问题。我有一个 HTML5 画布,我在其中绘制了两个图表(线)。我有每个图表的线连接点,我有两个 y 值(图片中的 X,Y),我必须在其中画一条线并填充图表的上方或下方。我真的似乎无法让它工作,因为我尝试为特定图表上方的所有内容着色并用矩形剪裁它,但我有两个图表,所以我必须有两个剪裁区域,这提供了不正确的解决方案。
帖子里有图片可以看案例
所以我有一个红色图表和一个棕色图表以及 X 和 Y 的值(这是彩色线条)。X 是浅蓝色 - 我要为下面的图表着色的高度。Y 是浅灰色,是棕色图表上方着色的高度。
如何在不知道图表与 X 或 Y 的交叉点的情况下实现这一点?
我正在使用的代码是这样的。我为每个图表调用两次。我省略了绘制图表的代码——它是使用“点”数组绘制的。不幸的是,我没有颜色区域末端和图表之间的交叉点(红色和浅蓝色的交叉;棕色和浅灰色)
ctx.rect(clipX, clipY, clipWidth, clipHeight);
ctx.stroke();
ctx.clip();
//fill the area of the chart above or below
ctx.globalAlpha = 0.4;
ctx.strokeStyle = color;
ctx.fillStyle = color;
ctx.beginPath();
ctx.moveTo(points[0].x, points[0].y + visibleGraphicSpace);
for (var i = 1; i < points.length; i++) {
ctx.lineTo(points[i].x, points[i].y + visibleGraphicSpace);
}
ctx.closePath();
ctx.fill();Run Code Online (Sandbox Code Playgroud)
首先,我为可见区域绘制矩形,然后使用给定的点数组绘制图表,关闭它并填充上方或下方的所有内容,直到画布结束。但是这个解决方案只需要第二个填充权,因为它覆盖了第一个。
PS:我需要绘制两种着色填充物,而不仅仅是其中一种。
我希望我能很好地解释它。如果您有任何问题,请不要介意提问。提前感谢您的帮助。
所以我的解决方案中有两个项目.两者都是WebApi.我在两者中都有控制器,我可以从客户端调用它们--javascript.问题是我需要从第一个项目的控制器中的方法调用第二个项目的控制器中的方法.我还认为我应该声明我需要调用的方法是Post,所以我也需要发送它的参数.这有可能吗?我听说过"RedirectToAction"方法,但我认为这在webapi中不起作用.