Component/hologram/zh: Difference between revisions
Jump to navigation
Jump to search
imported>OCDoc Import Imported from legacy OpenComputers documentation at ocdoc.cil.li |
Clean up Markdown artifacts from DokuWiki migration |
||
| Line 3: | Line 3: | ||
此组件由[[Block/hologram projector/zh|全息投影仪]]提供。 以下函数可用于创建全息影像,其分辨率为48x32x48,投影范围最大为9x6x9格。2级全息投影仪的分辨率并未提高,但是可以用至多三种颜色显示全息投影(1级全息投影仪只能用一种)。 | 此组件由[[Block/hologram projector/zh|全息投影仪]]提供。 以下函数可用于创建全息影像,其分辨率为48x32x48,投影范围最大为9x6x9格。2级全息投影仪的分辨率并未提高,但是可以用至多三种颜色显示全息投影(1级全息投影仪只能用一种)。 | ||
组件名: | 组件名:<code>hologram</code>。 | ||
回调函数: | 回调函数: | ||
* | * <code>clear()</code> | ||
<pre>清除全息影像。 | <pre>清除全息影像。 | ||
</pre> | </pre> | ||
* | * <code>get(x:number, y:number, z:number):number</code> | ||
<pre>返回全息影像指定坐标处的值。 | <pre>返回全息影像指定坐标处的值。 | ||
</pre> | </pre> | ||
* | * <code>set(x:number, y:number, z:number, value:number or boolean)</code> | ||
<pre>设定全息影像指定坐标处的值。 | <pre>设定全息影像指定坐标处的值。 | ||
</pre> | </pre> | ||
* | * <code>fill(x:number, z:number[, minY:number], maxY:number, value:number)</code> | ||
<pre> | <pre>用给定值填充指定柱状区域中的一个区间,只会覆写区间内的体素。若省略minY则默认为1。作用范围包含区间的两端。 | ||
</pre> | </pre> | ||
'''注意:'''在1.3.3版本前并没有 | '''注意:'''在1.3.3版本前并没有<code>minY</code>参数,指定高度处及其下方的所有体素都将被赋值,指定高度上方的所有体素都不会被赋值。 | ||
* | * <code>copy(x:number, z:number, sx:number, sz:number, tx:number, tz:number)</code> | ||
<pre>遵从给定的位置变换,复制一个柱状区域。 | <pre>遵从给定的位置变换,复制一个柱状区域。 | ||
</pre> | </pre> | ||
* | * <code>getScale():number</code> | ||
<pre>返回当前全息影像的渲染缩放比例。 | <pre>返回当前全息影像的渲染缩放比例。 | ||
</pre> | </pre> | ||
* | * <code>setScale(value:number)</code> | ||
<pre>设定渲染缩放比例。缩放比例越大则耗能越多。做小缩放比例为0.33,此时全息投影的大小在一个方块以内。最大缩放比例为3,此时全息投影会占据9x6x9格的空间。 | <pre>设定渲染缩放比例。缩放比例越大则耗能越多。做小缩放比例为0.33,此时全息投影的大小在一个方块以内。最大缩放比例为3,此时全息投影会占据9x6x9格的空间。 | ||
</pre> | </pre> | ||
* | * <code>getTranslation:number, number, number</code> | ||
<pre>返回当前的位置变换偏移量。 | <pre>返回当前的位置变换偏移量。 | ||
</pre> | </pre> | ||
* | * <code>setTranslation(x:number, y:number, z:number)</code> | ||
<pre>设定位置变换向量。全息投影显示时将会从默认位置以此向量为偏移值进行偏移。最大允许偏移值与投影仪等级有关。偏移值的单位为全息投影的尺寸,因此位置改变的距离远近也会随着缩放比例而增减。 | <pre>设定位置变换向量。全息投影显示时将会从默认位置以此向量为偏移值进行偏移。最大允许偏移值与投影仪等级有关。偏移值的单位为全息投影的尺寸,因此位置改变的距离远近也会随着缩放比例而增减。 | ||
</pre> | </pre> | ||
* | * <code>maxDepth():number</code> | ||
<pre>全息影像支持的色深。 | <pre>全息影像支持的色深。 | ||
</pre> | </pre> | ||
* | * <code>getPaletteColor(index:number):number</code> | ||
<pre>获取定义给指定值的16进制颜色。 | <pre>获取定义给指定值的16进制颜色。 | ||
</pre> | </pre> | ||
* | * <code>setPaletteColor(index:number, value:number):number</code> | ||
<pre>设置定义给指定值的16进制颜色。\\ | <pre>设置定义给指定值的16进制颜色。\\ | ||
</pre> | </pre> | ||
下面是一个简单的程序样例,可用于设定不同体素的值: | 下面是一个简单的程序样例,可用于设定不同体素的值: <syntaxhighlight lang="lua"> | ||
local component = require("component") local hologram = component.hologram local args = {...} hologram.set(tonumber(args[1]), tonumber(args[2]), tonumber(args[3]), args[4] == "true" or args[4] == "on") | |||
</syntaxhighlight> | |||
使用例(假设上述程序被保存为 | 使用例(假设上述程序被保存为<code>holo-set.lua</code>): <code># holo-set 16 8 20 true</code> | ||
高级样例: | 高级样例: | ||
* [ | * [https://github.com/OpenPrograms/Sangar-Programs/blob/master/holo-flow.lua Holo Flow] | ||
<pre>此程序生成了一张高度图,并在上面“移动”。制造了滚动的大地的效果。 | <pre>此程序生成了一张高度图,并在上面“移动”。制造了滚动的大地的效果。 | ||
</pre> | </pre> | ||
* [ | * [https://github.com/OpenPrograms/Sangar-Programs/blob/master/holo-text.lua Holo Text] | ||
<pre>此程序生成了一张随机的高度图,并在其上方显示了滚动的文本。 | <pre>此程序生成了一张随机的高度图,并在其上方显示了滚动的文本。 | ||
</pre> | </pre> | ||
请注意,第二个样例要比第一个高级的多。 '''重要事项:'''两个脚本都需要同一个文件夹中有[noise.lua]([[https://github.com/OpenPrograms/Sangar-Programs/blob/master/noise.lua)脚本才能工作|https://github.com/OpenPrograms/Sangar-Programs/blob/master/noise.lua)脚本才能工作]]。 | 请注意,第二个样例要比第一个高级的多。 '''重要事项:'''两个脚本都需要同一个文件夹中有[noise.lua]([[https://github.com/OpenPrograms/Sangar-Programs/blob/master/noise.lua)脚本才能工作|https://github.com/OpenPrograms/Sangar-Programs/blob/master/noise.lua)脚本才能工作]]。 | ||
| Line 85: | Line 87: | ||
{{:Component/contents/zh}} | {{:Component/contents/zh}} | ||
Latest revision as of 20:27, 24 August 2026
组件:全息影像
此组件由全息投影仪提供。 以下函数可用于创建全息影像,其分辨率为48x32x48,投影范围最大为9x6x9格。2级全息投影仪的分辨率并未提高,但是可以用至多三种颜色显示全息投影(1级全息投影仪只能用一种)。
组件名:hologram。
回调函数:
clear()
清除全息影像。
get(x:number, y:number, z:number):number
返回全息影像指定坐标处的值。
set(x:number, y:number, z:number, value:number or boolean)
设定全息影像指定坐标处的值。
fill(x:number, z:number[, minY:number], maxY:number, value:number)
用给定值填充指定柱状区域中的一个区间,只会覆写区间内的体素。若省略minY则默认为1。作用范围包含区间的两端。
注意:在1.3.3版本前并没有minY参数,指定高度处及其下方的所有体素都将被赋值,指定高度上方的所有体素都不会被赋值。
copy(x:number, z:number, sx:number, sz:number, tx:number, tz:number)
遵从给定的位置变换,复制一个柱状区域。
getScale():number
返回当前全息影像的渲染缩放比例。
setScale(value:number)
设定渲染缩放比例。缩放比例越大则耗能越多。做小缩放比例为0.33,此时全息投影的大小在一个方块以内。最大缩放比例为3,此时全息投影会占据9x6x9格的空间。
getTranslation:number, number, number
返回当前的位置变换偏移量。
setTranslation(x:number, y:number, z:number)
设定位置变换向量。全息投影显示时将会从默认位置以此向量为偏移值进行偏移。最大允许偏移值与投影仪等级有关。偏移值的单位为全息投影的尺寸,因此位置改变的距离远近也会随着缩放比例而增减。
maxDepth():number
全息影像支持的色深。
getPaletteColor(index:number):number
获取定义给指定值的16进制颜色。
setPaletteColor(index:number, value:number):number
设置定义给指定值的16进制颜色。\\
下面是一个简单的程序样例,可用于设定不同体素的值:
local component = require("component") local hologram = component.hologram local args = {...} hologram.set(tonumber(args[1]), tonumber(args[2]), tonumber(args[3]), args[4] == "true" or args[4] == "on")使用例(假设上述程序被保存为holo-set.lua): # holo-set 16 8 20 true
高级样例:
此程序生成了一张高度图,并在上面“移动”。制造了滚动的大地的效果。
此程序生成了一张随机的高度图,并在其上方显示了滚动的文本。
请注意,第二个样例要比第一个高级的多。 重要事项:两个脚本都需要同一个文件夹中有[noise.lua]([[1]]。
目录
| < 100% 15% 15% > | ||
| 组件API | 3D打印机 - 抽象总线 - 无线接入点 - 区块加载器 - 电脑 - 合成 - 数据卡 - 数据库 - 调试 - 无人机 - 驱动器 - EEPROM - 经验 - 文件系统 - 发电机 - 地质分析仪 - GPU - 全息投影仪 - 因特网 - 物品栏控制器 - 拴绳 - 微控制器 - 调制解调器 - 运动传感器 - 导航 - 网络拆分器 - 活塞 - 红石 - 运动红石机构 - 机器人 - 屏幕 - 告示牌 - 储罐控制器 - 牵引光束 - 转运器 - 隧道 - 世界传感器 | |
| ::: | 其它 | 访问组件 - 信号 |
| ::: | 模组联动 | 应用能源 |