Draw a sphere: Difference between revisions

Line 4,089:
}
 
for (i <- math.floor(-r).toInt to Math.ceil(r).toInt; x = i + .5) {
println(
(for (j <- math.floor(-2 * r).toInt to Math.ceil(2 * r).toInt; y = j / 2.0 + .5)
yield if (x * x + y * y <= r * r) {
 
def intensity(vec: Array[Double]) = {
val b = math.pow(dot(light, vec), k) + ambient
if (b <= 0) shades.length - 2
else math.max((1 - b) * (shades.length - 1), 0).toInt
}
 
shades(intensity(normalize(Array(x, y, scala.math.sqrt(r * r - x * x - y * y)))))
} else ' ').mkString)
}
}
 
Anonymous user