Skip to content

Commit f551c82

Browse files
committed
use f64 a bit more for domain coloring
1 parent 12d8eb9 commit f551c82

File tree

3 files changed

+24
-42
lines changed

3 files changed

+24
-42
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ readme = "README.md"
77
keywords = ["cli", "calculator"]
88
categories = ["command-line-interface", "command-line-utilities", "mathematics"]
99
repository = "https://github.com/bgkillas/kalc"
10-
version = "1.3.0"
10+
version = "1.3.1"
1111
edition = "2021"
1212

1313
[profile.release]

src/graph.rs

Lines changed: 22 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,8 +1145,11 @@ pub fn get_list_3d(
11451145
let t2: Float = i.sin();
11461146
(t1 * t2).abs().pow(0.125)
11471147
};
1148-
real.write_all(&hsv2rgb(3 * hue, sat, val).to_le_bytes())
1149-
.unwrap();
1148+
let hue: Float = hue * 3;
1149+
real.write_all(
1150+
&hsv2rgb(hue.to_f64(), sat.to_f64(), val.to_f64()).to_le_bytes(),
1151+
)
1152+
.unwrap();
11501153
}
11511154
else
11521155
{
@@ -1171,7 +1174,7 @@ pub fn get_list_3d(
11711174
let n2: Float = t2.clone() / (t2 + 1);
11721175
let n3: Float = (n1 * n2).abs().pow(0.0625);
11731176
let n4 = abs.atan() * 2 / π
1174-
0.8 * (n3.clone() * n4 + 0.5 - 0.5 * n3)
1177+
0.8 * (n3 * (n4 - 0.5) + 0.5)
11751178
};
11761179
let v: Float = if lig < 0.5
11771180
{
@@ -1181,18 +1184,20 @@ pub fn get_list_3d(
11811184
{
11821185
lig.clone() * (1 - sat.clone()) + sat
11831186
};
1187+
let hue: Float = hue * 3;
11841188
real.write_all(
11851189
&hsv2rgb(
1186-
3 * hue,
1190+
hue.to_f64(),
11871191
if v.is_zero()
11881192
{
1189-
Float::new(func.2.prec)
1193+
0.0
11901194
}
11911195
else
11921196
{
1193-
2 - 2 * lig / v.clone()
1197+
let sat: Float = 2 - 2 * lig / &v;
1198+
sat.to_f64()
11941199
},
1195-
v,
1200+
v.to_f64(),
11961201
)
11971202
.to_le_bytes(),
11981203
)
@@ -1952,24 +1957,18 @@ fn get_data(
19521957
(d2_or_d3, re_or_im, lines, false, rec_re, rec_im)
19531958
})
19541959
}
1955-
fn hsv2rgb(hue: Float, sat: Float, val: Float) -> u32
1960+
fn hsv2rgb(hue: f64, sat: f64, val: f64) -> u32
19561961
{
1957-
if sat.is_zero()
1962+
if sat == 0.0
19581963
{
1959-
return rgb2val(val.clone(), val.clone(), val);
1964+
return rgb2val(val, val, val);
19601965
}
1961-
let i = hue
1962-
.clone()
1963-
.floor()
1964-
.to_integer()
1965-
.unwrap_or_default()
1966-
.to_usize()
1967-
.unwrap_or_default();
1966+
let i = hue.floor();
19681967
let f = hue - i;
1969-
let p = val.clone() * (1 - sat.clone());
1970-
let q = val.clone() * (1 - sat.clone() * f.clone());
1971-
let t = val.clone() * (1 - sat * (1 - f));
1972-
match i % 6
1968+
let p = val * (1.0 - sat);
1969+
let q = val * (1.0 - sat * f);
1970+
let t = val * (1.0 - sat * (1.0 - f));
1971+
match i as usize % 6
19731972
{
19741973
0 => rgb2val(val, t, p),
19751974
1 => rgb2val(q, val, p),
@@ -1979,26 +1978,9 @@ fn hsv2rgb(hue: Float, sat: Float, val: Float) -> u32
19791978
_ => rgb2val(val, p, q),
19801979
}
19811980
}
1982-
fn rgb2val(r: Float, g: Float, b: Float) -> u32
1981+
fn rgb2val(r: f64, g: f64, b: f64) -> u32
19831982
{
1984-
let r: Float = 255 * r;
1985-
let g: Float = 255 * g;
1986-
let b: Float = 255 * b;
1987-
let v: u32 = (r
1988-
.to_integer()
1989-
.unwrap_or_default()
1990-
.to_u32()
1991-
.unwrap_or_default()
1992-
<< 16)
1993-
+ (g.to_integer()
1994-
.unwrap_or_default()
1995-
.to_u32()
1996-
.unwrap_or_default()
1997-
<< 8)
1998-
+ b.to_integer()
1999-
.unwrap_or_default()
2000-
.to_u32()
2001-
.unwrap_or_default();
1983+
let v: u32 = (((255.0 * r) as u32) << 16) + (((255.0 * g) as u32) << 8) + (255.0 * b) as u32;
20021984
v
20031985
}
20041986
fn spawn(cli: bool) -> Child

0 commit comments

Comments
 (0)