Skip to content

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)'
}