Add image, Support writing PPM P3 image, Additional checks
This commit is contained in:
parent
32d9ef18eb
commit
4e0801eb9b
5 changed files with 80 additions and 27 deletions
|
@ -26,22 +26,20 @@ func (val *Validator) Calculate(x int, y int) {
|
|||
val.print("h = %d² + %d² = %d + %d = %d", u, v, u*u, v*v, h)
|
||||
if h < 200 {
|
||||
val.print("⇒ h < 200 → %d < 200", h)
|
||||
val.print("=> Continuing to section B")
|
||||
val.sectionB(u, v, h)
|
||||
} else if v < 0 {
|
||||
val.print("⇒ h < 200 → %d ≮ 200", h)
|
||||
val.print("⇒ v < 0 → %d < 0", v)
|
||||
val.print("=> Continuing to section C")
|
||||
val.sectionC(u, v, h)
|
||||
} else {
|
||||
val.print("⇒ h < 200 → %d ≮ 200", h)
|
||||
val.print("⇒ v < 0 → %d ≮ 0", v)
|
||||
val.print("=> Continuing to section D")
|
||||
val.sectionD(x, y)
|
||||
}
|
||||
}
|
||||
|
||||
func (val *Validator) sectionB(u int, v int, h int) {
|
||||
val.print("=> Continuing to section B")
|
||||
val.r = 420
|
||||
val.print("R = %d", val.r)
|
||||
val.b = 520
|
||||
|
@ -77,11 +75,11 @@ func (val *Validator) sectionB(u int, v int, h int) {
|
|||
val.b = val.b + w
|
||||
val.print(" B → B + %d ⇒ B = %d", w, val.b)
|
||||
}
|
||||
val.print("=> Continuing to section E")
|
||||
val.sectionE()
|
||||
}
|
||||
|
||||
func (val *Validator) sectionC(u int, v int, h int) {
|
||||
val.print("=> Continuing to section C")
|
||||
val.r = 150 + 2*v
|
||||
val.print("R = 150 + 2 ⋅ %d = 150 + %d = %d", v, 2*v, val.r)
|
||||
val.b = 50
|
||||
|
@ -112,30 +110,38 @@ func (val *Validator) sectionC(u int, v int, h int) {
|
|||
val.r = val.r + d
|
||||
val.print(" R → R + %d ⇒ R = %d", d, val.r)
|
||||
}
|
||||
val.print("=> Continuing to section E")
|
||||
val.sectionE()
|
||||
}
|
||||
|
||||
func (val *Validator) sectionD(x int, y int) {
|
||||
val.print("=> Continuing to section D")
|
||||
var c int = x + 4*y
|
||||
val.print("c = %d + 4 ⋅ %d", x, y)
|
||||
val.r = 132 + c
|
||||
val.print("R = 132 + %d = %d", c, val.r)
|
||||
val.b = 192 + c
|
||||
val.print("R = 192 + %d = %d", c, val.b)
|
||||
val.print("=> Continuing to section E")
|
||||
val.sectionE()
|
||||
}
|
||||
|
||||
func (val *Validator) sectionE() {
|
||||
val.print("=> Continuing to section E")
|
||||
if val.r > 255 {
|
||||
val.r = 255
|
||||
val.print("⇒ R > 255 → R = %d", val.r)
|
||||
}
|
||||
if val.r < 0 {
|
||||
val.r = 0
|
||||
val.print("⇒ R < 0 → R = %d", val.r)
|
||||
}
|
||||
if val.b > 255 {
|
||||
val.b = 255
|
||||
val.print("⇒ B > 255 → B = %d", val.b)
|
||||
}
|
||||
if val.b < 0 {
|
||||
val.b = 0
|
||||
val.print("⇒ B < 0 → B = %d", val.b)
|
||||
}
|
||||
val.g = val.mod(7*val.r+3*val.b, 1)
|
||||
val.print("G = (7 + %d + 3 ⋅ %d) | 1 = (%d + %d) | 1 = %d | 1 = %d", val.r, val.b, 7+val.r, 3*val.b, 7*val.r+3*val.b, val.g)
|
||||
}
|
||||
|
|
Reference in a new issue