Component/hologram/zh: Difference between revisions

From OpenComputers: Rebooted
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级全息投影仪只能用一种)。


组件名:`hologram`。
组件名:<code>hologram</code>。


回调函数:
回调函数:


* `clear()`
* <code>clear()</code>


<pre>清除全息影像。
<pre>清除全息影像。
</pre>
</pre>


* `get(x:number, y:number, z:number):number`
* <code>get(x:number, y:number, z:number):number</code>


<pre>返回全息影像指定坐标处的值。
<pre>返回全息影像指定坐标处的值。
</pre>
</pre>


* `set(x:number, y:number, z:number, value:number or boolean)`
* <code>set(x:number, y:number, z:number, value:number or boolean)</code>


<pre>设定全息影像指定坐标处的值。
<pre>设定全息影像指定坐标处的值。
</pre>
</pre>


* `fill(x:number, z:number[, minY:number], maxY:number, value:number)`
* <code>fill(x:number, z:number[, minY:number], maxY:number, value:number)</code>


<pre>用给定值填充指定柱状区域中的一个区间,只会覆写区间内的体素。若省略`minY`则默认为1。作用范围包含区间的两端。 
<pre>用给定值填充指定柱状区域中的一个区间,只会覆写区间内的体素。若省略minY则默认为1。作用范围包含区间的两端。
</pre>
</pre>
'''注意:'''在1.3.3版本前并没有`minY`参数,指定高度处及其下方的所有体素都将被赋值,指定高度上方的所有体素都不会被赋值。
'''注意:'''在1.3.3版本前并没有<code>minY</code>参数,指定高度处及其下方的所有体素都将被赋值,指定高度上方的所有体素都不会被赋值。
* `copy(x:number, z:number, sx:number, sz:number, tx:number, tz:number)`
* <code>copy(x:number, z:number, sx:number, sz:number, tx:number, tz:number)</code>


<pre>遵从给定的位置变换,复制一个柱状区域。
<pre>遵从给定的位置变换,复制一个柱状区域。
</pre>
</pre>


* `getScale():number`
* <code>getScale():number</code>


<pre>返回当前全息影像的渲染缩放比例。
<pre>返回当前全息影像的渲染缩放比例。
</pre>
</pre>


* `setScale(value:number)`
* <code>setScale(value:number)</code>


<pre>设定渲染缩放比例。缩放比例越大则耗能越多。做小缩放比例为0.33,此时全息投影的大小在一个方块以内。最大缩放比例为3,此时全息投影会占据9x6x9格的空间。
<pre>设定渲染缩放比例。缩放比例越大则耗能越多。做小缩放比例为0.33,此时全息投影的大小在一个方块以内。最大缩放比例为3,此时全息投影会占据9x6x9格的空间。
</pre>
</pre>


* `getTranslation:number, number, number`
* <code>getTranslation:number, number, number</code>


<pre>返回当前的位置变换偏移量。
<pre>返回当前的位置变换偏移量。
</pre>
</pre>


* `setTranslation(x:number, y:number, z:number)`
* <code>setTranslation(x:number, y:number, z:number)</code>


<pre>设定位置变换向量。全息投影显示时将会从默认位置以此向量为偏移值进行偏移。最大允许偏移值与投影仪等级有关。偏移值的单位为全息投影的尺寸,因此位置改变的距离远近也会随着缩放比例而增减。
<pre>设定位置变换向量。全息投影显示时将会从默认位置以此向量为偏移值进行偏移。最大允许偏移值与投影仪等级有关。偏移值的单位为全息投影的尺寸,因此位置改变的距离远近也会随着缩放比例而增减。
</pre>
</pre>


* `maxDepth():number`
* <code>maxDepth():number</code>


<pre>全息影像支持的色深。
<pre>全息影像支持的色深。
</pre>
</pre>


* `getPaletteColor(index:number):number`
* <code>getPaletteColor(index:number):number</code>


<pre>获取定义给指定值的16进制颜色。
<pre>获取定义给指定值的16进制颜色。
</pre>
</pre>


* `setPaletteColor(index:number, value:number):number`
* <code>setPaletteColor(index:number, value:number):number</code>


<pre>设置定义给指定值的16进制颜色。\\
<pre>设置定义给指定值的16进制颜色。\\
</pre>
</pre>
下面是一个简单的程序样例,可用于设定不同体素的值: ```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 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>


使用例(假设上述程序被保存为`holo-set.lua`): `# holo-set 16 8 20 true`
使用例(假设上述程序被保存为<code>holo-set.lua</code>): <code># holo-set 16 8 20 true</code>


高级样例:
高级样例:


* [Holo Flow](https://github.com/OpenPrograms/Sangar-Programs/blob/master/holo-flow.lua)
* [https://github.com/OpenPrograms/Sangar-Programs/blob/master/holo-flow.lua Holo Flow]


<pre>此程序生成了一张高度图,并在上面“移动”。制造了滚动的大地的效果。
<pre>此程序生成了一张高度图,并在上面“移动”。制造了滚动的大地的效果。
</pre>
</pre>
* [Holo Text](https://github.com/OpenPrograms/Sangar-Programs/blob/master/holo-text.lua)
* [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 - 全息投影仪 - 因特网 - 物品栏控制器 - 拴绳 - 微控制器 - 调制解调器 - 运动传感器 - 导航 - 网络拆分器 - 活塞 - 红石 - 运动红石机构 - 机器人 - 屏幕 - 告示牌 - 储罐控制器 - 牵引光束 - 转运器 - 隧道 - 世界传感器
::: 其它 访问组件 - 信号
::: 模组联动 应用能源