【问题标题】:Draw rectangles in a cartesian coordinate system在笛卡尔坐标系中绘制矩形
【发布时间】:2017-10-29 14:36:45
【问题描述】:

我想用 JavaScript 绘制下面的图表。基本上,目标是在笛卡尔坐标系中绘制一些矩形。每个矩形可以用 4 个点表示,坐标是给定的。

有人知道怎么画吗?有没有图书馆可以这样做?理想情况下,我希望有一些示例代码可以稍微调整一下,而不是从头开始绘制所有内容。

【问题讨论】:

  • 您可以使用 HTML5 画布。
  • 谢谢,能提供代码吗? @SpencerWieczorek

标签: javascript canvas charts data-visualization coordinate-systems


【解决方案1】:

您有两个主要选择:

  • SVG - 与 HTML 非常相似的矢量图形(您拥有带有属性等的元素)。您还可以使用 CSS 来设置 SVG 样式。
  • canvas - 这基本上是一个位图,您可以在其上使用 JS 进行绘制。
  • (HTML) - 当然你也可以使用简单的 HTML + CSS。

这里有一些关于这两个的教程:

有很多 3rd 方库可以帮助解决这个问题,例如:

这是一个简单的画布示例:

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');

ctx.strokeRect(0, 0, 400, 200);
ctx.strokeRect(0, 200 - 20, 20, 20);
ctx.strokeRect(30, 200 - 70, 20, 70);
<canvas id="canvas" width="400" height="400"></canvas>

【讨论】:

  • 谢谢您,但是您能否提供一个库或一个现有示例与我所追求的最匹配? (理想情况下,我只需要修改一点代码,而不是从头开始绘制)
  • 然后,我需要在这些矩形上绘制一个笛卡尔坐标系吗?
  • 是的,在使用画布的时候,一切都需要自己做。如果您不想这样做,则需要使用一些 3rd 方库。我认为 d3.js 有点矫枉过正,这取决于你最终想要什么......这是使用 d3.js 绘制简单 x/y 轴的示例:codepen.io/Dentz/pen/qZVZwB
  • 你能解释一下strokeRect 的第五个参数没有找到任何参考。
  • 只有4个参数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 2016-12-10
  • 1970-01-01
  • 2019-06-23
  • 1970-01-01
相关资源
最近更新 更多