【发布时间】:2019-02-15 10:43:01
【问题描述】:
我一直在研究一些应该在每个黑色像素上绘制一个点(椭圆)的代码。我是 get 函数的新手,我怀疑我在使用它时可能犯了一个错误。有谁知道为什么我的代码无法成功“点”印度地图?
function setup() {
createCanvas(400, 400);
}
window.onload = function() {
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var img = document.getElementById("map");
ctx.drawImage(img, 10, 10, 150000, 1800000);
}
function draw() {
for (var x = 0; x < 100; x++){
for (var y = 0; y < 100; y++){
if(black(get(x,y))==255){
ellipse(x , y, 10, 100);
}
}
}
}
<style>
p {
position:absolute;
z-index:3;
}
img {
position:absolute;
z-index: -1;
}
</style>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- PLEASE NO CHANGES BELOW THIS LINE (UNTIL I SAY SO) -->
<script language="javascript" type="text/javascript" src="libraries/p5.min.js"></script>
<script language="javascript" type="text/javascript" src="p5js-temp-sadfsfdsad8981306098870070843.js"></script>
<!-- OK, YOU CAN MAKE CHANGES BELOW THIS LINE AGAIN -->
<!-- This line removes any default padding and style.
You might only need one of these values set. -->
<style> body { padding: 0; margin: 0; } </style>
</head>
<body>
<img id="map" width="220" height="277" src="https://geology.com/world/india-map.gif" alt="The map">
<!--<img src="https://geology.com/world/india-map.gif">-->
<p id="area"></p> <br>
<p id="perimeter"></p>
</body>
</html>
编辑:我将代码更改为
window.onload = function() {
var c = canvas;
var ctx = c.getContext("2d");
var img = document.getElementById("map");
ctx.drawImage(img, 10, 10, 150000, 1800000);
}
function draw() {
for (var x = 0; x < 100; x++){
for (var y = 0; y < 100; y++){
if(black(get(x,y))==255){
ellipse(x , y, 10, 100);
}
}
}
}
<style> body { padding: 0; margin: 0; } </style>
</head>
<body>
<img id="map" width="220" height="277" src="https://geology.com/world/india-map.gif" alt="The map">
<!--<img src="https://geology.com/world/india-map.gif">-->
<p id="area"></p> <br>
<p id="perimeter"></p>
</body>
</html>
<style>
p{
position:absolute;
z-index:3;
}
img{
position:absolute;
z-index: -1;
}
</style>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script language="javascript" type="text/javascript" src="libraries/p5.min.js"></script>
<script language="javascript" type="text/javascript" src="p5js-temp-sadfsfdsad1466343293693433275.js"></script>
<!-- This line removes any default padding and style.
You might only need one of these values set. -->
但是,我在地图上看到了一个黑色矩形,没有点。有谁知道为什么会这样?
【问题讨论】:
-
你没有id为“myCanvas”的元素,所以
document.getElementById("myCanvas");返回null -
在p5js中你不需要获取画布,你可以使用
canvas引用它 -
这是 p5.js 和非 p5.js 图形编程方法的奇怪混合。
-
我是 javascript 和 p5js 的新手,使用了一些来自互联网的代码 sn-ps。
-
还有——
black()是什么?这不是 p5.js 函数。就学习 p5.js 而言,我强烈推荐 Dan Shiffman 在 Coding Train 频道上的 YouTube 视频
标签: javascript p5.js