这里我用的空间是x向右为正,y向下为正,z向屏幕里面为正。相当于标准右手系绕x轴旋转了180度。

将三个点光源放在

r = [0.3,0,0.5];
g = [0.3,-0.5*cos(pi/6),-0.5*sin(pi/6)];
b = [0.3,0.5*cos(pi/6),-0.5*sin(pi/6)];

这三个位置上,向四周发射光线,取光线到y-z平面的模的倒数作为光的强度。

图像如下:

程序如下:

clear all;
close all;
clc;r = [0.3,0,0.5];
g = [0.3,-0.5*cos(pi/6),-0.5*sin(pi/6)];
b = [0.3,0.5*cos(pi/6),-0.5*sin(pi/6)];
imgr1=[];imgr2=[];
imgg1=[];imgg2=[];
imgb1=[];imgb2=[];
for y=-1:0.004:1imgr1=[];imgg1=[];imgb1=[];for z=-1:0.004:1       pm=[0,y,z];         lightr=pm-r;lightg=pm-g;lightb=pm-b;imgr=1/norm(lightr);imgg=1/norm(lightg);imgb=1/norm(lightb);imgr1=[imgr1 imgr];imgg1=[imgg1 imgg];      imgb1=[imgb1 imgb];           endimgr2=[imgr2;imgr1];imgg2=[imgg2;imgg1];  imgb2=[imgb2;imgb1];
end[h w]=size(imgr2);img=zeros(h,w,3);
img(:,:,1) = mat2gray(imgr2);
img(:,:,2) = mat2gray(imgg2);
img(:,:,3) = mat2gray(imgb2);
imshow(img)
imwrite(img,'img.png')

转载于:https://www.cnblogs.com/tiandsp/p/8947429.html

matlab练习程序(渲染三原色)相关推荐

  1. matlab多元回归程序,多元回归程序MATLAB程序

    <多元回归程序MATLAB程序>由会员分享,可在线阅读,更多相关<多元回归程序MATLAB程序(45页珍藏版)>请在人人文库网上搜索. 1.程序MATLAB多元回归程序matl ...

  2. 无源定位之时差估计的精确时差估计算法(ETDE)及MATLAB实现程序

    精确时差估计算法(ETDE)及MATLAB实现程序 算法原理 算法总结 性能分析 实验结果 算法原理 假设两接收站分别接收的带噪信号为 {x(kT)=s(kT)+ε1(kT)y(kT)=s(kT−D) ...

  3. matlab潮流程序,IEEE33节点matlab潮流程序.doc

    IEEE33节点matlab潮流程序 Bus [1,0,0 ; 2,100, 60; 3,90,40; 4,120,80; 5,60,30; 6,60,20; 7, 200, 100 ; 8,200, ...

  4. matlab有意思程序,matlab有意思的小程序

    10个C++趣味小程序,很有意思的.VIP专享文档 VIP专享文档是百度文库认... 现在很多人使用微信的时间已经非常长了,他们注册的微信号往上可能已经是5年前的事情了,正是由于不少使用者在这个过程当 ...

  5. matlab程序里nbus=x的意思,MATLAB潮流程序(IEEE14 直角坐标 牛拉法)

    MATLAB潮流程序(IEEE14 直角坐标牛拉法)clear baseMVA=100; %功率基值 %%读Data1中数据 load Data1.txt Bus=Data1(:,1); %节点号 V ...

  6. 怎样在matlab q-q图上读出斜率,Q分解法潮流计算matlab小程序

    <Q分解法潮流计算matlab小程序>由会员分享,可在线阅读,更多相关<Q分解法潮流计算matlab小程序(18页珍藏版)>请在人人文库网上搜索. 1.Q分解法潮流计算matl ...

  7. matlab期权风险评估算法,使用 MATLAB 应用程序根据期权价格估算风险中性密度 (risk-neutral density, RND)...

    我们为什么选择 MATLAB 我们决定创建 MATLAB 应用程序估算 RND,因为我们希望研究成果得到广泛应用,而不是仅限于在量化经济学领域或是熟悉 MATLAB 编程的和金融研究人员使用. 我们发 ...

  8. 微信小程序渲染图片报错:[渲染层网络层错误] Failed to load local image resource

    微信小程序渲染图片报错解决:[渲染层网络层错误] Failed to load local image resource 背景 通过用户点击上传图片,通过res.tempFilePaths拿到用户上传 ...

  9. matlab密度特征,关于用MATLAB应用程序估算风险中性密度的性能分析和介绍

    由于场外期权合约的买卖在交易双方间私下进行而非通过公开市场,因而可能很难确定合约的价格有利于买方还是卖方.为对这些合约进行定价,金融分析师往往依据看涨期权或看跌期权价格估算出风险中性密度(RND)值. ...

  10. 10 竞争神经网络与SOM神经网络matlab参考程序

    %% I. 清空环境变量 clear all clc %% II. 训练集/测试集产生 %% % 1. 导入数据 load water_data.mat %% % 2. 数据归一化 attribute ...

最新文章

  1. C++中全排列算法函数next_permutation的使用方法
  2. 直播 | ACL 2021论文解读:提升预训练语言模型实体与关系理解的统一框架
  3. python从txt拿取数据_python requests + xpath 获取分页详情页数据存入到txt文件中
  4. PHP随机静态页面生成系统源码雨尘SEO系统
  5. 在线CSS3压缩美化格式化
  6. Silverlight 数据绑定(Binding)
  7. Linux Shell基础 Shell的输入重定向和输出重定向
  8. PostGIS批量导入导出shapefile文件
  9. PCManFTP v2.0(CVE-2013-4730)漏洞分析报告
  10. SGX 是什么技术?
  11. GitHub学生优惠:repl.it 使用--Python爬虫示例
  12. Futaba M11BT222A VFD(主控PT6311)STC51单片机驱动程序
  13. 广州大学机器学习与数据挖掘实验三
  14. GIS基本功 | 14 地图投影及其相关概念
  15. 孵化中国网络安全未来,ISC 2021创新独角兽沙盒大赛开启招募
  16. 适合学计算机用的机械键盘,什么机械键盘好用2017 LOL职业玩家用什么键盘好
  17. 卖身风波中的考拉员工
  18. C语言实现实数和复数矩阵及其各种运算(二)
  19. far manager引出的windows编码问题
  20. unity 自制摇杆

热门文章

  1. 三极管控制继电器接法
  2. 微信公众号 苹果手机圆角失效
  3. layui自定义新增tab页方法
  4. Python百日百行代码挑战-day8,day9,day10,游戏实战系列-五子棋
  5. 2008Noip解题报告
  6. HTML5自动换行的间距设置,div css p段落行高行距怎么设置篇
  7. 架构设计实践思路:什么是架构,怎么画架构图?
  8. Vue-实现商品放大镜效果
  9. 史上最全的C++/游戏开发面试问题总结(一)——C++基础
  10. 【Godot】加载文件数据