clc;
clear all;
close all;

%% 台灯的设置
figure('color','k')
% 底座
fill3([0 1 1 0],[0 0 1 1],[0 0 0 0],'b',...
[1 1 1 1],[0 0 1 1],[0 0.5 0.5 0],'b',...
[1 1 0 0],[0 1 1 0],[0.5 0.5 0.5 0.5],'g',...
[0 1 1 0],[1 1 1 1],[0 0 0.5 0.5],'b');
grid on
hold on
% x = '.1*cos(t) + 0.2';
% y = '.1*sin(t) + 0.5';
% z = 's';
% ezmesh(x ,y,z,[0,2*pi,0.5,1]);
%后侧面
fill3([0 0.1 0.1 0],[0.2 0.2 0.8 0.8],[0.5 0.5 0.5 0.5],'m',...
[0.1 0.1 0.1 0.1],[0.2 0.2 0.8 0.8],[0.5 4.1 4.1 0.5],'m',...
[0.1 0.1 0 0],[0.2 0.8 0.8 0.2],[4.1 4.1 4.1 4.1],'m',...
[0 0.1 0.1 0],[0.8 0.8 0.8 0.8],[0.5 0.5 4.1 4.1],'m');
%顶面
fill3([0 0.7 0.7 0],[0 0 1 1],[4.1 4.1 4.1 4.1],'b',...
[0.7 0.7 0 0],[0 0 1 1],[4.1 4.2 4.2 4.1],'b',...
[0.7 0.7 0 0],[0 1 1 0],[4.2 4.2 4.2 4.2],'b',...
[0 0.7 0.7 0],[1 1 1 1],[4.1 4.1 4.2 4.2],'b');
view([135 38])
axis([-1,2,-1,2,0,5])
% 绘制球体
x='.2*sin(s)*sin(t) + 0.4';
y='.2*sin(s)*cos(t) + 0.4';
z='.2*cos(s) + 3.3';
ezmesh(x,y,z,[0 pi*2 0 pi*2])
axis off
%% light
plotbutton=uicontrol('style','pushbutton',...
'string','On', ...
'fontsize',12, ...
'position',[100,400,50,20], ...
'callback', 'On=1;'); %define the stop button
erasebutton=uicontrol('style','pushbutton',...
'string','Of', ...
'fontsize',12, ...
'position',[200,400,50,20], ...
'callback','Of=1;');
quitbutton=uicontrol('style','pushbutton',...
'string','Color', ...
'fontsize',12, ...
'position',[300,400,50,20], ...
'callback','Color=1;');
On = 0;
Of = 0;
Color = 0;
% cc = [1,0,0];
while (On == 1)

if Color == 1
cc = round(rand(1,3));
else
cc = [1,0,0];
end
light('color',cc,'style','local','position',[3.1,3.1,3.1])
% light phong
% set(gca,'CameraViewAngle',12)
if Of ==1
On = 0;
end
r = rand
drawnow
end

灯光设置(light)的更多相关文章

  1. CSharpGL(13)用GLSL实现点光源(point light)和平行光源(directional light)的漫反射(diffuse reflection)

    CSharpGL(13)用GLSL实现点光源(point light)和平行光源(directional light)的漫反射(diffuse reflection) 2016-08-13 由于CSh ...

  2. 【MVVM Light】Messager的使用

    一.前言       在MVVM编程的模式中,有时候我们会遇到一个很尴尬的情况: 若干个xaml.cs都复用一个ViewModel,当ViewModel想传递一个特定的消息给某一个xaml.cs的时候 ...

  3. bzoj4691: Let There Be Light

    如果原点能被一个光源照到,那么这两个点之间一定没有任何球.我们可以通过三分距离来确定某线段和球是否有交点. 注意到m非常小,于是我们可以枚举原点被哪些光源照到.由于\(O(2^{n}*m)\)会超时, ...

  4. 【MVVM Light】新手初识MVVM,你一看就会

    一.前言 作为一个初入软件业的新手,各种设计模式与框架对我是眼花缭乱的.所以当我接触到这些新知识的时候就希望自己能总结几个步骤,以便更好更方便的在日常工作中进行使用. MVVM顾名思义就是Model- ...

  5. Sensor(LIGHT)

    package com.example.sensor01; import java.util.List; import android.hardware.Sensor; import android. ...

  6. sourcesafe.light 开源项目启动

    sourcesafe.light 源于一个2D独立砖块沙盒游戏. 在这个游戏的设计中碰到了一个瓶颈:这个游戏想把玩家变成一个个neo,在矩阵世界中没有什么不可以修改. 这个游戏要跨平台,玩家的修改操作 ...

  7. C#Light 和 uLua的对比第二弹

    上次的对比大家还有印象否,C#Light和ulua对比各有胜负 今天我们加入一个去反射优化,这是uLua没办法实现的优化,我们也就只能不要脸的胜之不武了 以原生执行同一测试时间为X1,数字越小的越快 ...

  8. C#Light/Evil合体啦

    决定将C#Light和C#Evil合并成一个项目,毕竟C#Evil包含C#Light所有的功能,分开两个,基本的表达式方面有什么bug还得两头改 暂时就C#Light/Evil这么叫吧,庆祝合体,画了 ...

  9. C#最良心脚本语言C#Light/Evil,Xamarin\WP8\Unity热更新最良心方案,再次进化.

    C#Light的定位是嵌入式脚本语言,一段C#Light脚本是一个函数 C#Evil定位为书写项目的脚本语言,多脚本文件合作,可以完全用脚本承载项目. C#Light/Evil 使用完全C#一致性语法 ...

随机推荐

  1. pytest测试框架入门

    安装pytest 命令行输入: pip install -U pytest 检查是否安装了正确的版本: λ pytest --version This is pytest version 5.3.5, ...

  2. 考研数学数一公式整理(微积分&线性代数&概率统计)

    主要根据李永乐老师的线性代数讲义.全书和汤家凤老师的高数讲义整理的. 用于记背数学需要背的公式和步骤,概念.定义.公式多,方法步骤少(毕竟太庞杂了). 本来是自用,但还是分享一下,希望有补充指正! 链 ...

  3. High-Resolution Image Inpainting using Multi-Scale Neural Patch Synthesis

    论文来源:CVPR 2017 摘要 之前方法的缺点:之前的方法是基于语义和上下文信息的,在填充较大holes的表现得很好,能够捕获更高级的图像特征,但是由于内存限制和难以训练网络的因素,只能处理分辨率 ...

  4. VB的使用

    一.今天讲解VB的使用,明天讲解VC与VB的相互调用: 1.指针是什么?    不需要去找什么标准的定义,它就是一个32位整数,在C语言和在VB里都可以用Long类型来表示.在32位Windows平台 ...

  5. guava中的SettableFuture分析

    当缓存中没有要找的数据时,则要从数据库中去查询,而当并发量比较大时可能会击穿数据库,所以guava cache对同一值的查询做了合并请求的处理.其中就用到了SettableFuture,类似一把锁,只 ...

  6. oracle sql%notfound

    SQL%NOTFOUND 是一个布尔值.与最近的sql语句(update,insert,delete,select)发生交互,当最近的一条sql语句没有涉及任何行的时候,则返回true.否则返回fal ...

  7. 【NOIP2015模拟11.2晚】JZOJ8月4日提高组T2 我的天

    [NOIP2015模拟11.2晚]JZOJ8月4日提高组T2 我的天 题目 很久很以前,有一个古老的村庄--xiba村,村子里生活着n+1个村民,但由于历届村长恐怖而且黑暗的魔法统治下,村民们各自过着 ...

  8. C++20初体验——concepts

    引子 凡是涉及STL的错误都不堪入目,因为首先STL中有复杂的层次关系,在错误信息中都会暴露出来,其次这么多类和函数的名字大多都是双下划线开头的,一般人看得不习惯. 一个经典的错误是给std::sor ...

  9. OpenCV击中击不中HMTxingt变换最容易理解的解释

    OpenCV击中击不中变换是几个形态变换中相对比较拗口.不容易理解的,给初学者理解带来了很多困难,虽然网上也有许多的公开资料,原理和算法基本上介绍比较清晰,但是是要OpenCV进行形态变换大多还是说得 ...

  10. SASRec 实践

    SASRec--2018,ICDM,论文<Self-Attentive Sequential Recommendation> 源代码链接:https://github.com/kang20 ...