From 131c43c5cf9dcedc787548ef087ff86cbd8d3022 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Fri, 7 Feb 2025 22:52:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3Swatch=20Scheme=E5=9C=A8?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=8C=85=E5=90=AB=E5=8E=9F=E5=A7=8B=E9=A2=9C?= =?UTF-8?q?=E8=89=B2=E6=97=B6=E7=9A=84=E5=AE=9A=E4=BD=8D=E9=94=99=E4=B9=B1?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/schemes/swatch_style/swatch.rs | 20 ++++++++---------- src/color_functions/color_module_bg.wasm | Bin 698587 -> 698590 bytes 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/color-module/src/schemes/swatch_style/swatch.rs b/color-module/src/schemes/swatch_style/swatch.rs index a445cec..e90e392 100644 --- a/color-module/src/schemes/swatch_style/swatch.rs +++ b/color-module/src/schemes/swatch_style/swatch.rs @@ -24,28 +24,26 @@ impl Swatch { } } - fn find_interval(&self) -> (usize, usize) { + fn find_interval(&self) -> usize { if !self.include_primary { - return (0, 0); + return 0; } if self.primary_key.l == self.min_key { - return (0, 1); + return 0; } if self.primary_key.l == self.max_key { - return (self.color_amount - 2, self.color_amount - 1); + return self.color_amount - 1; } let step = (self.max_key - self.min_key) / (self.color_amount - 1) as f32; - let index = ((self.primary_key.l - self.min_key) / step) as usize; - - (index, index + 1) + ((self.primary_key.l - self.min_key) / step).ceil() as usize } pub fn swatch(&self) -> Vec { let mut swatch = Vec::new(); if self.include_primary { - let (_, primary_index) = self.find_interval(); + let primary_index = self.find_interval(); if primary_index > 0 { - let step = (self.max_key - self.min_key) / primary_index as f32; + let step = (self.primary_key.l - self.min_key) / (primary_index - 1) as f32; for i in 0..primary_index { let lightness = self.min_key + step * i as f32; swatch.push(Oklch { @@ -55,8 +53,8 @@ impl Swatch { } } if primary_index < self.color_amount - 1 { - let step = - (self.max_key - self.min_key) / (self.color_amount - primary_index) as f32; + let step = (self.max_key - self.primary_key.l) + / (self.color_amount - primary_index - 1) as f32; for i in primary_index..self.color_amount { let lightness = self.min_key + step * i as f32; swatch.push(Oklch { diff --git a/src/color_functions/color_module_bg.wasm b/src/color_functions/color_module_bg.wasm index 64de9174c80c774857a8f99f3cef3c311078f72c..615a4ff9e7fcb2cffd0f6de1bb16a452b6bb4a08 100644 GIT binary patch delta 882 zcmZ{i&ubGw6vyYi%>Ld;kbohzFuMs-V+z_syG0LKB=r~s2?e8gP)IkuR7LS1D_CeQ zdN7tP{s+;6LM#hjM7$L|1hI!G=Aakx;MH4wvuWD&AiHnBGw zbPJrK+TLDRyFNv^!_}6HY59(WGM#Ks-AW$Dh=)GnVG|E^%!42B*xH`tp$4udbjd@L zJZvvah6xZuZ~`*o!6gqad8m?yN<6saLC_L6YEo;r)5KMJWRXY2FuW5aHlc5?62l{I zjXOJZsx3RK9<^$0%f3&+fp@{kyZ<=VseN)%nV=Y#zra&1_J^>w3_&zlz*8jP;c1dH z9yUnYUXpz6VHtw>n}@Ha>2S8|_zs{Mk#^$UWqi?qm3VC%e`cY%QQtv|R9xTTGfikk z;ha2?@rOBOT7%Zca8aR9DKrW_9xfW`U(OQQoTIoh$TFAo0>#OR`MD@vFh4>)>KDxO d&P}SEn5f>R@v({d{b;smF2IBMR?)n-{tvC_urL4s delta 928 zcmZuvL2J}N6rOpRNoKQIS)^!b6<)H7Y>P^1p}SO&9ZS{QB8aqDr6<`Yy(m%;krb`8 zP*2tp^&eC(Vl5F*g16p^VzHw2;Gv-4N$^(RWNTf)kjFRkUgqU{-#4Gvdq1xCKKtef zE+kv|;q>k2%|+~*=U?tDccsf+eDfTS(%C8gq?x|l;P;&Pt^_+4w@OSGqX5bbL9;>d z5Khg|^O{vbAnyg{=b(=K80#Dngcaxr#7KdglEB;|3eBUHCEqorqAyL}^OaVlaCeJVZc!i0zV{@7s6b)vVu3-73f*y0*KxKas;=RiO&~RoiS<&Th8de_ zTtb74O$63e;;NRZwPy69)lH?How#win^CZDQsgh14whv0Y(#t9Z`S@L-ej`GQLs|HUG z)6HGD0IxWY62isw!zer+=gsu`DtztW(cIV?P*~~Mny55+nB4A{+79!mJUjW;FH7n7 ze)-e3LJzX-oHHaTYzl`$rOr@pd)q%tH=vW^{ALFW2v1TRYTFMa#ghAmk0$R*?g{@2 aRSvdQr)j;fZGR)_E4x*GGi{dL>Dk{=%CmC-