zoukankan      html  css  js  c++  java
  • matlab练习程序(渲染三原色)

    这里我用的空间是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:1
       imgr1=[];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];           
       end
       imgr2=[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')

    关注公众号: MATLAB基于模型的设计 (ID:xaxymaker) ,每天推送MATLAB学习最常见的问题,每天进步一点点,业精于勤荒于嬉

     打开微信扫一扫哦!

  • 相关阅读:
    scala学习笔记4:函数和闭包
    架构模式: 领域事件
    架构模式:API组合
    架构模式: Saga
    架构模式: 客户端 UI 构建
    架构模式: 服务器端页面碎片化元素构建
    架构模式: 记录部署和变更日志
    架构模式: 健康检查API
    架构模式: 异常追踪
    架构模式:分布式跟踪
  • 原文地址:https://www.cnblogs.com/52geek/p/10116690.html
Copyright © 2011-2022 走看看