https://github.com/easonzero/sampler
just a sampler
https://github.com/easonzero/sampler
Last synced: 2 months ago
JSON representation
just a sampler
- Host: GitHub
- URL: https://github.com/easonzero/sampler
- Owner: Easonzero
- Created: 2017-04-27T08:31:55.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-04-29T08:54:29.000Z (about 8 years ago)
- Last Synced: 2025-01-24T11:31:36.007Z (4 months ago)
- Language: JavaScript
- Size: 154 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Sampler
just a samplerSampler是一个取样调试工具,可以图形化取样结果,并计算出各个分布区间的取样个数和取样概率

## 使用之前
Sampler脚本文件在`\bin`路径下,在引用它之前记得先引用sylvester.js库,你可以在`\test`路径下找到它
## 快速开始
```js
let canvas = document.getElementById('canvas');let renderer = new $S.Renderer(canvas);
let sampler = new $S.Sampler('cosineWeightedDirection',$V([0,1,0]));
let print = false;function tick(){
requestAnimationFrame(tick);
renderer.render(sampler.sampleDatas);
if(sampler.sampleNum>1000){
if(!print) {
sampler.print();
print = !print;
}
return;
}
sampler.sampling();
}tick();
```上面这段样例代码非常的简单,你只需要通过`$S.Renderer`创建一个渲染器,通过`$S.Sampler`创建一个取样器即可,并在渲染循环中不断调用取样器的`sampling`函数进行取样,并将取样点交到渲染器中渲染即可。
当然,在运行代码之前不要忘记确认你的浏览器支持webgl!## 写你自己的取样函数
```js
function power(n){
return {
f: () => {
let sample = [];
for(let i=0;i
函数名
参数
说明
constructor
(canvas,pSize=5)
结构体
@canvas 画布元素
@pSize 取样点大小
render
(samplerResult)
@samplerResult 取样器取样函数的返回结果
Sampler 取样器
属性名
类型
说明
sampleNum
int
取样数
divide
int
分布区间划分数目
函数名
参数
说明
constructor
(name,...attr)
结构体
@name 取样函数名
@attr 取样函数参数
addSampler
(name,f)
添加一个取样函数
@name 函数名
@f 函数体
sampling
执行取样函数,返回取样结果
打印各个分布区间的
取样个数和取样概率