jr-util
Version:
这是MJR的JS工具库。定期更新
94 lines (93 loc) • 3.49 kB
TypeScript
/**
* 文字转化为图片 画图
* @param label
* @param h
* @returns
*/
export declare const threeDomDrawTextByCanvas: (label: {
title: string;
h: number;
color: string;
shadowColor: String;
bold: boolean;
font: String;
}, h: number) => {
width: number;
height: number;
url: string;
};
export declare const threeFlipImage: (image: any, direction?: string, canvasSize?: number) => HTMLCanvasElement;
/**
* 加载一组图像纹理并进行垂直翻转处理
*
* 传入顺序 [ l左,r右,d下,u上,b后,f前 ]
* @param urls
* @returns
*/
export declare const threeLoadTextureFunc: (urls: string[], THREE: any) => any;
/**
* 加载一组图像纹理并进行垂直翻转处理
*
* 主要用于在三维场景中创建天空盒等需要多面体纹理的场景
*
* @param urls 一个包含图像URL的数组,用于加载纹理
* @returns 返回一个Promise,解析为一个包含翻转后图像的对象数组
*/
export declare const threeLoadTextureFuncImages: (urls: string[], THREE: any) => any;
/**
* 根据半径计算长方形的尺寸
* 该函数旨在模拟一个将球体展开为长方形的过程
* 其中,长方形的宽度近似于球体的赤道周长,高度近似于球体的直径
* 这种计算方法常用于简单的地图投影或图形学中
*
* @param {number} radius 球体的半径,用于计算长方形的尺寸
* @returns {Object} 返回一个对象,包含长方形的宽度和高度
*/
export declare const threeCalculateRectangleSize: (radius: number) => {
width: number;
height: number;
};
/**
* 更新标签位置
* 根据3D场景中的标记组和相机位置,更新DOM元素的位置
* @param mark_group 标记组对象,包含一系列待更新位置的3D标记
* @param parentRef 父DOM元素引用,用于查找对应的DOM元素
* @param camera 相机对象,用于将3D坐标转换为2D屏幕坐标
* @param THREE THREE对象
*/
export declare const threeUpdateLabelPosition: (mark_group: any, parentRef: any, camera: any, THREE: any) => void;
/**
* 将三维平面坐标转换为球面坐标
* 此函数用于根据给定的平面坐标(x, y)和视角的宽度、高度以及球体的半径,
* 计算出对应的球面坐标(xSphere, ySphere, zSphere)
*
* @param x 平面坐标系中的x坐标
* @param y 平面坐标系中的y坐标
* @param width 视角的宽度
* @param height 视角的高度
* @param radius 球体的半径
* @returns 返回一个对象,包含球面坐标(xSphere, ySphere, zSphere)
*/
export declare const threePlaneToSphereSize: (x: number, y: number, width: number, height: number, radius: number) => {
x: number;
y: number;
z: number;
};
/**
* 在3D场景中添加一个移动的立方体
* @param id 唯一标识 必填
* @param x x轴径坐标 必填
* @param y y轴径坐标 必填
* @param radius 球体半径 必填
* @param THREE THREE对象
* @returns 返回创建的立方体对象
*/
export declare const threeAddMovingCube: (id: string, x: number, y: number, radius: number, THREE: any) => any;
/**
* 更新三维立方体纹理贴图
* 该函数递归地更新三维立方体每个面的纹理贴图
*
* @param texture 三维立方体的纹理对象,应包含source和needsUpdate属性
* @param images 包含每个面纹理贴图的数组,每个元素应包含索引i和图像数据img
*/
export declare const threeUpdateCubeTextureFace: (texture: any, images: string[]) => void;