Rust 获取返回“f64”而不是“[u8;4]的值`
我使用的是Rust 获取返回“f64”而不是“[u8;4]的值`,rust,Rust,我使用的是噪音板条箱,无法理解如何将其转换为RGB值 noise = "0.7.0" pub-type-Color=[u8;4]; 我正在尝试使用get\u value()函数,如下图所示: pub fn get_值(&self,x:usize,y:usize)->颜色{ let(宽度、高度)=自身尺寸; 如果x
噪音
板条箱,无法理解如何将其转换为RGB值
noise = "0.7.0"
pub-type-Color=[u8;4];
我正在尝试使用get\u value()
函数,如下图所示:
pub fn get_值(&self,x:usize,y:usize)->颜色{
let(宽度、高度)=自身尺寸;
如果x<宽度和y<高度{
自映射[x+y*宽度]
}否则{
自我边界颜色
}
}
get_value()
是为PlaneMapBuilder实现的。因此我希望PlaneMapBuilder::get_value(x,y)
返回格式为[r,g,b,a]
的内容,但这不会发生:
外部板条箱噪音;
使用噪音::{utils::*,翻滚};
fn main(){
让mut my_noise=PlaneMapBuilder::new(&Billow::new()).build();
让my_val=my_noise.get_值(1,1);
println!(“{}”,my_val.to_string());
///返回类似于-0.6107655150546的值,而不是我所期望的[u8;4]
}
在中,我看到了add\u gradient\u point()
的定义,它将颜色作为参数:
pub fn添加梯度点(多个self,位置:f64,颜色)->self{
//检查向量是否已包含输入点。
如果!赛尔夫
.梯度点
.国际热核实验堆(iter)
.any(|&x |(x.pos-pos).abs()
在这里,他们使用了[u8;4]
结构,我希望颜色
类型:
let jade_gradient=ColorGradient::new()
.clear_gradient()
.添加梯度点(-1.000,[24146102255])
.添加梯度点(0.000,[78154115255])
什么可以解释这种行为
get\u value()
是为PlaneMapBuilder
“实现”get\u value()
是正确的。但是,它不是get_value()
from。实际上,它返回的是f64
,而不是Color
根据您想要的“颜色”类型,您可以使用&my_noise
调用它的方法,该方法返回NoiseImage
//noise=“0.7.0”
使用噪音::{utils::*,翻滚};
fn main(){
让my_noise=PlaneMapBuilder::new(&Billow::new()).build();
让image=ImageRenderer::new().render(&my_noise);
让my_val=image.get_值(1,1);
println!(“{:?}”,my_val);
//打印:`[18,18,18,255]`
}
在这里,它们使用了[u8;4]
结构,我希望颜色
类型使用这种结构
只是要清楚,在这种情况下,这些是相同的事情。简而言之,type
关键字允许您为现有类型定义新的“”。基本上,您可以为复杂类型提供一个速记名称。然而,它们仍然是相同的类型