抖动采样算法测试,小图形看不出什么明显区别,还是上代码和测试图吧。

类声明:

#pragma once
#ifndef __JITTERED_HEADER__
#define __JITTERED_HEADER__ #include "sampler.h" class Jittered:public Sampler {
public:
Jittered();
~Jittered();
Jittered(const integer samps);
Jittered(const integer samps, const integer sets);
Jittered(const Jittered& ji);
Jittered& operator=(const Jittered& ji);
virtual Sampler* clone() const;
virtual void generate_samples();
};
#endif

类实现:

#include "pch.h"
#include "jittered.h" Jittered::Jittered() :Sampler() {
generate_samples();
} Jittered::~Jittered() {} Jittered::Jittered(const integer samps) : Sampler(samps) {
generate_samples();
} Jittered::Jittered(const integer samps, const integer sets) : Sampler(samps, sets) {
generate_samples();
} Jittered::Jittered(const Jittered& ji) : Sampler(ji) {
generate_samples();
} Jittered& Jittered::operator=(const Jittered& ji) {
if (this == &ji)
return *this;
Sampler::operator=(ji);
return *this;
} Sampler* Jittered::clone() const {
return new Jittered(*this);
} void Jittered::generate_samples() {
integer n = (integer)std::sqrt((ldouble)nsamples);
for (integer p = 0; p < nsets; p++) {
for (integer i = 0; i < n; i++)
for (integer j = 0; j < n; j++) {
Point2 sp((j + random_ldouble()) / n, (i + random_ldouble()) / n); //抖动算法核心
samples.push_back(sp);
}
}
} 

测试结果图:

最新文章

  1. 阿里聚安全受邀参加SFDC安全大会,分享互联网业务面临问题和安全创新实践
  2. 精通jQuery选择器
  3. java,js,jstl,EL的简单交互
  4. Java Web之Servlet
  5. [Asp.Net]获取客户端ip和mac地址
  6. R--相关分布函数、统计函数的使用
  7. 玩转sublime(一)——玩转全局文件搜索/替换
  8. iOS UIimage初始化时的两种方法
  9. 115太酷了,居然出了个TV版客户端
  10. LeetCode 6. ZigZag Conversion Question
  11. F, A, MS, QM, RF的OFFER和经历 -- Final update
  12. [补档]从OI学麻将
  13. hdu_2670Girl Love Value(dp)
  14. Jmeter(三)_配置元件
  15. Oracle中row_number()、rank()、dense_rank() 的区别
  16. Fetch使用
  17. 【XSY1596】旅行 期望DP
  18. C++和java的区别和联系
  19. REST WebService与SOAP WebService的比较
  20. .33-浅析webpack源码之doResolve事件流(5)

热门文章

  1. Spark在Local环境下的使用
  2. 学习Linux须知1.0之Linux相关概念、工具(yum、vim)、防火墙等
  3. B - A Simple Task
  4. 哈工大软件构造Lab2(2022)
  5. CabloyJS自带工作流引擎的文档清单
  6. 机器学习-学习笔记(二) --&gt; 模型评估与选择
  7. c++ 超大整数除法 高精度除法
  8. 2 Elment Ui 日期选择器 格式化问题
  9. 一文get到SOLID原则的重点
  10. 打通web的三维国产引擎!老子云AMRT,够牛!