这是我的任务:
编写一个程序来绘制一个200像素乘200像素的红色正方形,这个黑色边缘在中间是20像素宽,并且有两个对角线(想象如果对角线保持不变,它们会在图中心)。
这是我到目前为止所得到的:
var image = new SimpleImage(200, 200)
for (var p of image.values()){
var x = p.getX();
var y = p.getY();
if (y < 0) {
p.setRed(255);
}
if (x>y) {p.setRed(255);
}
if (x > 20) {p.setRed(255);}
//if (y > x) {p.setRed(255);}
}
print (image);
我应该怎样继续在左下角创建一个对角线?我在左上角创建了一个对角线,表达式为x&gt;年。是否有一个倒数可以产生左下角的对角线?
答案 0 :(得分:1)
尝试在for循环中再添加一个条件:
if(y>180 && x>(200-y) && x<=20){
p.setRed(255);
}
所以整个代码看起来像这样:
var image = new SimpleImage(200, 200)
for (var p of image.values()){
var x = p.getX();
var y = p.getY();
if (y < 0) {
p.setRed(255);}
if (x>y) {p.setRed(255);}
if (x > 20) {p.setRed(255);}
if(y > 180 && x>(200-y) && x <=20){
p.setRed(255);
}
}
print (image);
答案 1 :(得分:0)
这是我的解决方案:
var image = new SimpleImage(200, 200)
for (var p of image.values()){
var x = p.getX();
var y = p.getY();
if (x<=20 & y-x >= 0 & y<=200-x) {
p.setRed(255);
}
}
print (image);
这是解释。在图片上绘制x和y轴。现在,有4行定义了您正在谈论的形状:
x = 0(左侧垂直)
x = 20(右侧垂直)
y = x(主要水平)
y = 200 - x(顶部水平)
现在你只需要通过选择你需要的平面的一半来将这些等式转换成不等式,例如x = 0(你需要右手边)变成x&gt; 0
将所有方程式添加到if子句中(在这种情况下也注意不需要x> 0),然后就可以了。