基本信息
以下是所在类或对象的基本信息。
AMD:
require(["esri/geometry/Mesh"], (Mesh) => { /* code goes here */ });
ESM:
import Mesh from "@arcgis/core/geometry/Mesh";
类:
esri/geometry/Mesh
继承: Mesh > Geometry > Accessor
自从:用于 JavaScript 4.7 的 ArcGIS API
用法说明
网格是一种通用的客户端 3D geometry 类型,由具有属性的顶点组成。顶点包括地理位置、影响光照/着色的法线以及可用于将图像映射到网格的 uv 坐标。顶点被组合成 3D 图元以渲染场景中的网格(当前仅支持三角形图元)。
网格几何体可以具有确定其显示方式的内在材料。与场景图层中的 3D 对象类似,网格几何使用包含 FillSymbol3DLayer 的 MeshSymbol3D 符号进行符号化。
为了支持多种材质(复杂 3D 模型经常出现这种情况),网格可以定义组件,这些组件为网格中的特定区域定义材质。除了支持多种材质之外,组件还可以重用否则会重复形成三角形的顶点。
创建简单的网格几何图元
网格几何类有许多方便的函数来创建简单的原始形状。这些形状可以帮助您开始了解网格几何形状。
// Create a box mesh geometry
let mesh = Mesh.createBox(location, {
size: {
width: 100,
height: 50,
depth: 50
},
material: {
color: "red"
}
});
// Create a graphic and add it to the view
let graphic = new Graphic({
geometry: mesh,
symbol: {
type: "mesh-3d",
symbolLayers: [ { type: "fill" } ]
}
});
view.graphics.add(graphic);
手动创建网格几何体
可以通过指定 vertexAttributes 和组件来手动创建网格几何图形,如下例所示:
// Create a mesh geometry representing a pyramid
let pyramidMesh = new Mesh({
vertexAttributes: {
// vertex positions for the Louvre pyramid, Paris
position: [
// vertex 0 - base of the pyramid, south
2.336006, 48.860818, 0,
// vertex 1 - base of the pyramid, east
2.336172, 48.861114, 0,
// vertex 2 - base of the pyramid, north
2.335724, 48.861229, 0,
// vertex 3 - base of the pyramid, west
2.335563, 48.860922, 0,
// vertex 4 - top of the pyramid
2.335896, 48.861024, 21
]
},
// Add a single component with faces that index the vertices
// so we only need to define them once
components: [
{
faces: [
0, 4, 3,
0, 1, 4,
1, 2, 4,
2, 3, 4
]
}
],
// specify a spatial reference if the position of the vertices is not in WGS84
});
// add the mesh geometry to a graphic
let graphic = new Graphic({
geometry: pyramidMesh,
symbol: {
type: "mesh-3d",
symbolLayers: [ { type: "fill" } ]
}
});
view.graphics.add(graphic);
注意:从 4.11 版开始,网格几何体不再支持自动投射。
相关用法
- JavaScript ArcGIS MeshComponent.faces用法及代码示例
- JavaScript ArcGIS MeshSymbol3D用法及代码示例
- JavaScript ArcGIS Mesh.rotate用法及代码示例
- JavaScript ArcGIS MeshSymbol3D.clone用法及代码示例
- JavaScript ArcGIS MeshTexture.wrap用法及代码示例
- JavaScript ArcGIS MeshComponent用法及代码示例
- JavaScript ArcGIS MeshTexture用法及代码示例
- JavaScript ArcGIS Mesh.vertexAttributes用法及代码示例
- JavaScript ArcGIS Mesh.createBox用法及代码示例
- JavaScript ArcGIS MeshMaterial用法及代码示例
- JavaScript Measurement.areaUnit用法及代码示例
- JavaScript ArcGIS MediaContent用法及代码示例
- JavaScript Measurement.on用法及代码示例
- JavaScript Measurement.activeWidget用法及代码示例
- JavaScript Measurement.activeTool用法及代码示例
- JavaScript Measurement.container用法及代码示例
- JavaScript Measurement.startMeasurement用法及代码示例
- JavaScript Measurement用法及代码示例
- JavaScript Measurement.visible用法及代码示例
- JavaScript Measurement.linearUnit用法及代码示例
- JavaScript Measurement.classes用法及代码示例
- JavaScript Measurement.view用法及代码示例
- JavaScript Measurement.viewModel用法及代码示例
- JavaScript Measurement.when用法及代码示例
- JavaScript ArcGIS MultipointDrawAction vertex-add事件用法及代码示例
注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 Mesh。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。