坐标转换类action说明文档


screentosphere(x,y,h,v)
spheretoscreen(h,v,x,y,stereoside*)

在屏幕坐标和球面坐标之间进行转换的动作。

screentosphere动作将x/y 变量转换为h/v变量。spheretoscreen动作将h/v变量转换为x/y变量。

参数:

  • x / y
    以窗口左上角为原点的屏幕坐标变量,以像素为单位。
  • h / v
    球面坐标变量,以度数为单位 (360×180)。
  • stereoside(可选)

对于立体全景渲染,需要定义那一侧屏幕的坐标被投影,可设置的值:l对应左侧,r对应右侧,没有设置则对应非立体的屏幕坐标。

注意事项:

  • 所有参数必须为变量,不能使用数值!
  • 变量不存在时则创建一个。
ico-example 示例
screentosphere(mouse.x, mouse.y, toh, tov);

screentolayer(layer, screenx,screeny, layerx,layery)
layertoscreen(layer, layerx,layery, screenx,screeny)

在屏幕和相关的<layer>坐标之间进行转换。

参数:

  • layer
    <layer>元素的name
  • screenx / screenx
    以窗口左上角为原点的屏幕坐标变量,以像素为单位。
  • layerx / layery
    以layer左上角为原点的坐标变量。

注意事项:

  • 屏幕坐标基于krpano坐标系统 (左上角为 0 / 0 到 右下角为 stagewidth / stageheight)。
  • scalechildren被启用时,layer的坐标也会缩放。
  • 不支持旋转了的layer。
  • 所有参数必须为变量,不能使用数值!
  • 变量不存在则创建一个。
ico-example 示例
screentolayer(bar, mouse.stagex,mouse.stagey, lx,ly);
div(fill, lx, layer[bar].pixelwidth);
mul(fill, 100);
clamp(fill, 0, 100);
txtadd(layer[barfill].width, get(fill), ‘%’);

remapfovtype(fov, srcfovtype, dstfovtype)
remapfovtype(fov, srcfovtype, dstfovtype, width, height)

从一个fovtype将fov数值映射到另一个。

当改变了fovtype时,同时也对fov进行重新映射,然后最终的全景缩放会保持相同。

参数:

  • fov
    需要改变的含有fov数值的变量。
    结果也会存储在相同的变量中。
  • srcfovtype
    当前的fovtype.。
    可以是: HFOV, VFOV, DFOV 或 MFOV。
  • dstfovtype
    新的fovtype.
    可以是: HFOV, VFOV, DFOV 或 MFOV。
  • width (可选)
    fov框架的宽度,以像素为单位。
    默认使用当前屏幕或area尺寸。
  • height (可选)
    fov框架的高度,以像素为单位。
    默认使用当前屏幕或area尺寸。
ico-example 示例
set(view.fovtype, HFOV);
set(view.fov, 90);

set(view.fovtype, VFOV);
remapfovtype(view.fov, HFOV, VFOV);

发表评论