MATLAB 帮助中心
创建光源对象
light
light(Name,Value)
light(ax,___)
lt = light(___)
light 在当前坐标区中创建一个 Light 对象。
Light
您看不到 Light 对象本身,但可以看到它们照射在位于相同坐标区内的任何补片和曲面对象上的效果。有许多函数都可以创建补片和曲面对象,包括 surf、mesh、pcolor、fill 和 fill3,以及 surface 和 patch 函数。
surf
mesh
pcolor
fill
fill3
surface
patch
示例
light(Name,Value) 使用一个或多个名称-值参量设置光源属性。例如,您可以使用 light("Color","green") 将光源的颜色指定为绿色。有关属性列表,请参阅 Light 属性。
Name,Value
light("Color","green")
light(ax,___) 将在由 ax 指定的坐标区中而不是在当前坐标区 (gca) 中创建光源对象。将 ax 指定为第一个输入参量,后跟上述语法中的任何输入参量组合。
ax
gca
lt = light(___) 返回 Light 对象。创建光源后,使用 lt 修改光源的属性。有关属性列表,请参阅 Light 属性。
lt
全部折叠
创建一个球体,并使用 Light 对象照亮它。
sphere axis equal light
创建一个球体,用局部光源从 x 和 y 轴的负值角直接照射球体。
sphere axis equal light("Style","local","Position",[-10 -10 0]);
您可以使用 tiledlayout 和 nexttile 函数显示分块图。调用 tiledlayout 函数以创建 1×2 分块图布局。调用 nexttile 函数以创建坐标区对象 ax1 和 ax2。通过将每个坐标区对象指定为 sphere 和 light 的第一个参量,在每个绘图中创建一个球体和对应的光源。
tiledlayout
nexttile
ax1
ax2
sphere
在左侧坐标区中,通过指定 Color 属性,创建一个球体并用红色光照亮它。在右侧坐标区中,创建一个球体并用绿色光照亮它。
Color
colormap([1 1 1]) tiledlayout(1,2) % Left sphere ax1 = nexttile; sphere(ax1) axis equal lt1 = light(ax1); lt1.Color = "r"; % Right sphere ax2 = nexttile; sphere(ax2) axis equal lt2 = light(ax2); lt2.Color = "g";
坐标区对象。如果未指定坐标区对象,则 light 会在当前坐标区中创建 Light 对象。
以 Name1=Value1,...,NameN=ValueN 的形式指定可选参量对组,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
Name1=Value1,...,NameN=ValueN
Name
Value
示例: light(Position=[-1 0 0],Style="local")
light(Position=[-1 0 0],Style="local")
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。
示例: light("Position",[-1 0 0],"Style","local")
light("Position",[-1 0 0],"Style","local")
[1 1 1]
'r'
'g'
'b'
光的颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认的 RGB 三元组 [1 1 1] 与白色对应。
RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]。
[0,1]
[0.4 0.6 0.7]
十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0 到 F。这些值不区分大小写。因此,颜色代码 "#FF8800" 与 "#ff8800"、"#F80" 与 "#f80" 是等效的。
#
0
F
"#FF8800"
"#ff8800"
"#F80"
"#f80"
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
"red"
"r"
[1 0 0]
"#FF0000"
"green"
"g"
[0 1 0]
"#00FF00"
"blue"
"b"
[0 0 1]
"#0000FF"
"cyan"
"c"
[0 1 1]
"#00FFFF"
"magenta"
"m"
[1 0 1]
"#FF00FF"
"yellow"
"y"
[1 1 0]
"#FFFF00"
"black"
"k"
[0 0 0]
"#000000"
"white"
"w"
"#FFFFFF"
下表列出了浅色和深色主题中绘图的默认调色板。
"gem" - 浅色主题默认值
"gem"
在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。
"glow" - 深色主题默认值
"glow"
您可以使用 orderedcolors 和 rgb2hex 函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem" 调色板的 RGB 三元组并将其转换为十六进制颜色代码。
orderedcolors
rgb2hex
RGB = orderedcolors("gem"); H = rgb2hex(RGB);
在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder") 获取 RGB 三元组。
RGB = get(groot,"FactoryAxesColorOrder")
在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255)) 获取十六进制颜色代码。
H = compose("#%02X%02X%02X",round(RGB*255))
示例: 'green'
'green'
Style
"infinite"
"local"
光源类型,指定为下列值之一:
"infinite" - 将光源放置于无穷远处。利用 Position 属性指定光源发射出平行光的方向。
Position
"local" - 将光源放置在 Position 属性指定的位置。光是从该位置向所有方向发射的点源。
[x y z]
光源位置,指定为 [x y z] 形式的三元素向量。以数据单位定义从坐标区原点到 (x, y, z) 坐标的向量元素。光源的实际位置取决于 Style 属性的值。
示例: [-40 -4 140]
[-40 -4 140]
在 R2006a 之前推出
lighting | material | patch | surface
lighting
material
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处