Fluid 流体仿真
支持对水流(如地表径流、积水扩散等)进行动态模拟,包括自定义点流体源与全域流体源、基于真实地形的流动演进、实时推演及结果可视化。
<mapgis-3d-fluid></mapgis-3d-fluid>
基本用法
API
属性
| 参数 | 说明 | 类型 | 默认值 | 版本 |
|---|---|---|---|---|
| fluidColorList | 流体颜色表 | IFluidColorOption[] | defaultFluidColorList | |
| flowParticle | 流体粒子效果 | IFlowParticle[] | defaultFlowParticle | |
| fluidFoam | 流体白浪效果 | IFluidFoam[] | defaultFluidFoam |
方法
| 名称 | 描述 | 版本 |
|---|---|---|
| simulate | 开始流体仿真 | |
| clearState | 清除仿真结果 | |
| handleStartOrPause | 开始/暂停模拟 |
IFluidColorOption
javascript
export interface IColorItem {
min: number // 流体区间最小深度
max: boolean // 流体区间最大深度
config: string // 区间颜色值,支持CSS颜色字符串
}
export interface IFluidColorOption {
id: string
label: string
value: IColorItem[] // 深度-颜色映射表
}defaultFluidColorList
javascript
export const defaultFluidColorList = [
{
id: '1',
value: [
{ min: 0, max: 4, config: 'rgba(0, 0, 0, 0)' },
{ min: 4, max: 10, config: '#EAF0FF' },
{ min: 10, max: 30, config: '#C9D8FE' },
{ min: 30, max: 50, config: '#A9C1FF' },
{ min: 50, max: 70, config: '#99B5FF' },
{ min: 70, max: 100, config: '#789EFF' },
{ min: 100, max: 140, config: '#477BFF' },
{ min: 140, max: 180, config: '#1E5EFF' },
{ min: 180, max: 230, config: '#0045F4' },
{ min: 230, max: 280, config: '#0035BB' },
{ min: 280, max: 320, config: '#002992' },
{ min: 320, max: 350, config: '#001B61' },
{ min: 350, max: 380, config: '#001449' }
],
label: '水面颜色'
},
{
id: '2',
value: [
{ min: 0, max: 4, config: 'rgba(0, 0, 0, 0)' },
{ min: 4, max: 10, config: '#AAF189' },
{ min: 10, max: 30, config: '#A7F097' },
{ min: 30, max: 50, config: '#A7F097' },
{ min: 50, max: 70, config: '#0003F6' },
{ min: 70, max: 100, config: '#FC01FF' },
{ min: 100, max: 140, config: '#84003B' },
{ min: 140, max: 180, config: '#FDAA05' },
{ min: 180, max: 230, config: '#D08A05' },
{ min: 230, max: 280, config: '#FC6607' },
{ min: 280, max: 320, config: '#FD6700' },
{ min: 320, max: 350, config: '#E40200' },
{ min: 350, max: 380, config: '#9E0005' }
],
label: '多色色表'
},
{
id: '3',
value: [
{ min: 0, max: 4, config: 'rgba(54, 62, 153, 0)' },
{ min: 4, max: 10, config: 'rgba(54, 62, 153, 0.9)' }
],
label: '单色-蓝'
}
]IFlowParticle
javascript
export interface IFlowParticle {
show: boolean // 是否显示粒子
fadeOpacity: number // 粒子消散速度
lineWidth: number // 粒子线宽度
number: number // 粒子数量
color: string // 粒子颜色
}defaultFlowParticle
javascript
const defaultFlowParticle = {
show: false,
fadeOpacity: 0.05,
lineWidth: 4,
number: 500,
color: 'rgba(255, 0, 0, 1)'
}IFluidFoam
javascript
export interface IFluidFoam {
show: boolean // 是否显示白浪
intensity: number // 白浪强度
size: number // 白浪大小
density: number // 白浪密度
color: string // 白浪颜色
}defaultFluidFoam
javascript
export const defaultFluidFoam = {
show: false,
intensity: 2,
size: 0.7,
density: 2,
color: 'rgba(255, 255, 255, 1)'
}