Calculates local shadow map for a elevation matrix by calculating the dot product between light direction and the surface normal vector at that point. Each point's intensity is proportional to the cosine of the normal vector.
lamb_shade(
heightmap,
sunaltitude = 45,
sunangle = 315,
zscale = 1,
zero_negative = TRUE
)
A two-dimensional matrix, where each entry in the matrix is the elevation at that point. All points are assumed to be evenly spaced.
Default `45`. The azimuth angle as measured from the horizon from which the light originates.
Default `315` (NW). The angle around the matrix from which the light originates.
Default `1`. The ratio between the x and y spacing (which are assumed to be equal) and the z axis.
Default `TRUE`. Zeros out all values below 0 (corresponding to surfaces facing away from the light source).
Matrix of light intensities at each point.
if(run_documentation()) {
#Generate a basic hillshade
montereybay %>%
lamb_shade(zscale=200) %>%
plot_map()
}
if(run_documentation()) {
#Increase the intensity by decreasing the zscale
montereybay %>%
lamb_shade(zscale=50) %>%
plot_map()
}
if(run_documentation()) {
#Change the sun direction
montereybay %>%
lamb_shade(zscale=200, sunangle=45) %>%
plot_map()
}
if(run_documentation()) {
#Change the sun altitude
montereybay %>%
lamb_shade(zscale=200, sunaltitude=60) %>%
plot_map()
}