mirror of
https://github.com/bevyengine/bevy
synced 2024-11-21 20:23:28 +00:00
453e0e4fc1
# Problem Division by zero in `crates/bevy_color/src/hsva.rs` when `blackness` is `1`: ```rust impl From<Hwba> for Hsva { fn from( Hwba { hue, whiteness, blackness, alpha, }: Hwba, ) -> Self { // Based on https://en.wikipedia.org/wiki/HWB_color_model#Conversion let value = 1. - blackness; let saturation = 1. - (whiteness / value); Hsva::new(hue, saturation, value, alpha) } } ``` ## Solution With `Hsva` colors if the `value` component is set to `0.` the output will be pure black regardless of the values of the `hue` or `saturation` components. So if `value` is `0`, we don't need to calculate a `saturation` value and can just set it to `0`: ```rust impl From<Hwba> for Hsva { fn from( Hwba { hue, whiteness, blackness, alpha, }: Hwba, ) -> Self { // Based on https://en.wikipedia.org/wiki/HWB_color_model#Conversion let value = 1. - blackness; let saturation = if value != 0. { 1. - (whiteness / value) } else { 0. }; Hsva::new(hue, saturation, value, alpha) } } ``` --------- Co-authored-by: Gino Valente <49806985+MrGVSV@users.noreply.github.com> |
||
---|---|---|
.. | ||
crates/gen_tests | ||
docs | ||
src | ||
Cargo.toml | ||
README.md |