686 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			686 KiB
		
	
	
	
	
	
	
	
title, subtitle, excerpt, layout
| title | subtitle | excerpt | layout | 
|---|---|---|---|
| appearance::hexString | Function in std::appearance | manual | 
appearance::hexString(@rgb: [number(_); 3]): string
Build a color from its red, green and blue components. These must be between 0 and 255.
Arguments
| Name | Type | Description | Required | 
|---|---|---|---|
rgb | 
[number(_); 3] | 
Yes | 
Returns
string - A sequence of characters
Examples
startSketchOn(-XZ)
  |> circle(center = [0, 0], radius = 10)
  |> extrude(length = 4)
  |> appearance(color = appearance::hexString([50, 160, 160]))
sideLen = 30
n = 10
// The cubes become more green and less blue with each instance.
fn cube(i, center) {
  g = 255 / n * i
  b = 255 / n * (n - i)
  return startSketchOn(XY)
    |> polygon(radius = sideLen / 2, numSides = 4, center = [center, 0])
    |> extrude(length = sideLen)
    |> appearance(color = appearance::hexString([0, g, b]), metalness = 80, roughness = 20)
}
// Create n cubes, shifting each one over in a line.
map(
  [0..n],
  f = fn(@i) {
    return cube(i, center = sideLen * i * 1.5)
  },
)
sideLen = 30
n = 6
fn cube(offset, i, red) {
  x = floor(i / n)
  y = rem(i, divisor = n)
  g = 255 / n * x
  b = 255 / n * y
  return startSketchOn(offsetPlane(XZ, offset))
    |> circle(diameter = sideLen, center = [sideLen * x * 1.5, sideLen * y * 1.5])
    |> extrude(length = sideLen)
    |> appearance(color = appearance::hexString([red, g, b]), metalness = 80, roughness = 40)
}
fn grid(offset, red) {
  return map(
    [0 ..< n * n],
    f = fn(@i) {
      return cube(offset, i, red)
    },
  )
}
grid(offset = 0, red = 0)
sideLen = 30
n = 4
fn cube(offset, i, red) {
  x = floor(i / n)
  y = rem(i, divisor = n)
  g = 255 / n * x
  b = 255 / n * y
  return startSketchOn(offsetPlane(XY, offset))
    |> circle(diameter = sideLen, center = [sideLen * x * 1.5, sideLen * y * 1.5])
    |> extrude(length = sideLen)
    |> appearance(color = appearance::hexString([red, g, b]), metalness = 80, roughness = 40)
}
fn grid(offset, red) {
  return map(
    [0 ..< n * n],
    f = fn(@i) {
      return cube(offset, i, red)
    },
  )
}
map(
  [0..<n],
  f = fn(@i) {
    return grid(offset = i * sideLen * 2, red = 255 * i / n)
  },
)