LogoLogo
HomeBlogResources
  • README
  • Design
    • Awesome Design Tools
      • Awesome Design Tools
    • Awesome-UI-Templates
      • README-en
    • awesome-design-systems
      • Awesome Design System
    • Awesome Figma
      • Awesome Figma
    • awesome-styleguides
      • README-en
    • awesome-typography
      • Awesome Typography
    • awesome-ui
      • README-en
    • Awesome UX Design Styleguides
      • Awesome UX Design Styleguides
    • awesome-ux-designer
      • README-en
      • Reading list
    • awesome-ux
      • README-en
    • Awesome Webflow
      • webflow-masterclass
        • Webflow + Firebase用戶認證
    • webflow-masterclass
      • Webflow + Firebase用戶認證
  • Devops
    • Awesome SaaS boilerplate
    • Free for Dev
    • Mega Awesome List
    • Awesome-WordPress-Plugins
      • Awesome WordPress Plugins List
    • Awesome Wordpress Plugin List
    • Awesome CMS
    • awesome-flutter-cn
    • awesome-headless-cms
      • readme-en
    • Awesome-jamstack-resources
      • Awesome-jamstack-resources
    • Awesome Laravel
      • Awesome Laravel
    • awesome-list
      • The awesome manifesto
      • Contributor Covenant Code of Conduct
      • Contribution Guidelines
      • Creating Your Own List
      • pull_request_template
      • Media
    • Awesome Minio
    • awesome-react
      • README-en
    • Awesome Stack
      • Awesome Stacks
    • Awesome UI component library
      • Awesome UI component library
    • awesome-uikit
      • README-en
    • awesome-vercel
      • Awesome Vercel (Previously ZEIT )
    • Awesome WooCommerce
      • Awesome WooCommerce
    • Awesome WordPress
      • Awesome WordPress
    • Awesome Wordpress Developer Tools
      • Awesome WP Developer Tools
  • Marketing
    • Awesome ADTech
      • Awesome AdTech
    • awesome-discord-communities
      • Contributor Covenant Code of Conduct
      • CONTRIBUTING
      • FAQ
      • Server Badges and Tags
      • .github
        • ISSUE_TEMPLATE
          • custom
        • ISSUE_TEMPLATE
          • issue--exisiting-community
        • ISSUE_TEMPLATE
    • HubSpot CMS Boilerplate
      • HubSpot CMS Boilerplate
    • Awesome HubSpot
    • Awesome Marketing
    • awesome-seo
    • marketing-for-engineers
      • README-en
    • Tech-Marketer
  • Nocode
    • Awesome NoCode / LowCode
      • readme-en
  • Server
    • Awesome Cloudflare
      • Awesome Cloudflare
    • Awesome-Selfhosted
      • Awesome-Selfhosted
  • shopify
    • Awesome Shopify
      • Awesome Shopify
    • Shopify Awesome 真棒!
      • Awesome Shopify
  • Tools
    • Awesome VS Code
    • Awesome Mac
      • Awesome Mac
      • editor-plugin-zh
      • editor-plugin
    • Awesome Nomad
      • Awesome Nomad
    • Awesome-notion
      • Awesome Notion (Eng)
    • awesome-tools-for-startups
      • Awesome list of FREE tools Startups should be using
  • web3
    • Blockchain-stuff
      • CONTRIBUTE
    • Blockchain-stuff
    • Web3.0_Vault-main
    • Web3.0_Vault-main
      • basics
    • awesome-discord-communities
      • Contributor Covenant Code of Conduct
      • CONTRIBUTING
      • FAQ
      • Server Badges and Tags
      • .github
        • ISSUE_TEMPLATE
          • custom
        • ISSUE_TEMPLATE
          • issue--exisiting-community
        • ISSUE_TEMPLATE
    • awesome-ethereum
    • awesome-solidity-gh-pages
      • Contributor Covenant Code of Conduct
      • Contribution Guidelines
      • PULL_REQUEST_TEMPLATE
    • Awesome Web3
      • Awesome Web3 Code of Conduct
      • Contribution Guidelines
      • PULL_REQUEST_TEMPLATE
    • free-Web3-resources
      • Contributor Covenant Code of Conduct
    • free-Web3-resources
      • Contributing Guidelines
    • free-Web3-resources
    • free-Web3-resources
      • Intro to Solidity
    • free-Web3-resources
      • 200-days-of-Web3
    • free-Web3-resources
    • free-Web3-resources
    • Free Web3 Resources
    • free-Web3-resources
      • .github
    • free-Web3-resources
      • .github
        • ISSUE_TEMPLATE
    • free-Web3-resources
      • .github
        • ISSUE_TEMPLATE
    • Web3.0_Vault-main
    • web3together-main
      • CODE_OF_CONDUCT
      • sessions
        • Getting Started in Smart Contract Development with Solidity
    • free-Web3-resources
      • .github
        • PULL_REQUEST_TEMPLATE
    • free-Web3-resources
      • .github
        • ISSUE_TEMPLATE
          • bug_report
    • free-Web3-resources
      • .github
        • ISSUE_TEMPLATE
          • feature_request
  • webgl
    • Awesome-threejs
      • docs
        • Hellow Three.js 之 三维空间中观察物体的方法--照相机
        • 创建自己的全景图
        • Hellow Three.js 之 创建各种几何形状
        • hello-light-pro
        • Hellow Three.js 之 光影之谜
        • Hellow Three.js 之 加载外部3D模型
        • Hellow Three.js 之 给创建的物体赋予材质
        • hello-obj-mtl
        • P5
        • Hellow Three.js 之 有趣的着色器
        • Hellow Three.js 之 运动物体的性能监测
        • Hellow Three.js 之 让物体动起来
        • Hello Three.js 之 Hello world!
        • what-webgl
        • glsl
          • GLSL 中文手册
          • OpenGL GLSL 语法和函数详解
          • The book of shaders 记录
          • 各种 Shaders 效果
      • demo
        • 有趣的 three.js Demo
          • Decorative WebGL Backgrounds
          • Infinite Tubes
          • The Aviator
        • P5.js Demo
        • Learning-Threejs
          • learning-threejs
        • Learning-Threejs
          • master
            • learning-threejs
        • Learning-Threejs
          • master
            • learning-threejs
        • Learning-Threejs
          • master
            • learning-threejs
        • Learning-Threejs
          • master
            • learning-threejs
        • Learning-Threejs
          • master
            • learning-threejs
        • Learning-Threejs
          • master
            • learning-threejs
        • Learning-Threejs
          • master
            • learning-threejs
        • Learning-Threejs
          • master
            • learning-threejs
        • Learning-Threejs
          • master
            • learning-threejs
        • Learning-Threejs
          • master
            • learning-threejs
        • Learning-Threejs
          • master
            • learning-threejs
        • Learning-Threejs
          • master
            • assets
              • models
                • ogre
                  • ogro
    • awesome-threejs
      • README-en
      • Contributor Covenant Code of Conduct
      • Contribution Guidelines
    • Awesome WebGL
      • CONTRIBUTING
      • Awesome WebGL
      • Contributor Covenant Code of Conduct
      • Libraries
        • CONTRIBUTING
      • Libraries
        • WebGL Libraries - Features
      • Libraries
        • WebGL Libraries - File Size
      • Awesome WebGL - Libaries/Frameworks
  • AI
    • ChatGPT 中文指南
    • 生成式 AI 項目、工具、藝術作品和模型的精選列表
    • 精選 GPT-4 指南
    • ChatGPT 工具收錄
      • Awesome ChatGPT
    • ChatGPT 中文調教指南
    • GPT 開放原始碼項目合集
    • ChatGPT 應用收藏
    • Awesome OpenAI - 超酷的 OpenAI 蒐藏
      • Awesome-openAI
    • Awesome GPT-3 應用集
      • Awesome GPT-3
    • ChatGPT 提示指令庫
      • Awesome ChatGPT Prompts
  • SaaS
    • awesome-saas-boilerplates
Powered by GitBook
On this page
  • 几何模型(Geometries)
  • 1、BoxGeometry 盒状几何体
  • 2、CircleGeometry 圆形几何体
  • 3、ConeGeometry 圆锥形几何体
  • 4、CylinderGeometry 圆筒几何体
  • 5、PlaneGeometry 平面几何体
  • 6、SphereGeometry 球形几何体
  • 7、TorusGeometry 空心环几何体
  • 8、TorusKnotGeometry 环面扭结几何体
  • 9、TextGeometry 3D文字几何体
Export as PDF
  1. webgl
  2. Awesome-threejs
  3. docs

Hellow Three.js 之 创建各种几何形状

Previous创建自己的全景图Nexthello-light-pro

Last updated 2 years ago

几何模型(Geometries)

几何形状(Geometry)最主要的功能是储存了一个物体的顶点信息。WebGL需要程序员指定每个顶点的位置,而在Three.js中,可以通过指定一些特征来创建几何形状,例如使用半径创建一个球体,从而省去程序员一个个指定顶点的工作量。

基本几何形状包括:立方体、平面、球体、圆柱体、四面体、八面体等几何形状,以及以三维文字作为几何形状的方法。

1、BoxGeometry 盒状几何体

盒型几何是四边形的原始几何类。它通常用于创建一个立方体或带有"宽度"、"高度"和"深度"构造函数参数的不规则四边形。

BoxGeometry(width : Float, height : Float, depth : Float, widthSegments : Integer, heightSegments : Integer, depthSegments : Integer)

  • width -- X轴上的面的宽度

  • height -- Y轴上的面的高度

  • depth -- Z轴上的面的深度

  • widthSegments -- 可选参数. 沿宽度面的分割面数量. 默认值为1.

  • heightSegments -- 可选参数. 沿高度面的分割面数量. 默认值为1.

  • depthSegments -- 可选参数. 沿深度面的分割面数量. 默认值为1.

2、CircleGeometry 圆形几何体

CircleGeometry(radius, segments, thetaStart, thetaLength)

  • radius -- 圆的半径, 默认值 = 50.

  • segments -- 分割面数量 (三角形), 最低值 = 3, 默认值 = 8.

  • thetaStart -- 第一个分割面的开始角度, 默认值 = 0 (3点钟方向).

  • thetaLength -- 圆形扇形的圆心角通常称为θ。默认为2 * Pi,这形成了一个完整的圆

3、ConeGeometry 圆锥形几何体

ConeGeometry(radius, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength)

  • radius -- 锥底半径. 默认值为20.

  • height -- 锥体高度. 默认值为100.

  • radiusSegments -- 围绕圆锥周长的分割面数量. 默认值为8.

  • heightSegments -- 沿圆锥高度的分割面数量. 默认值为1.

  • openEnded -- 指示锥底是打开还是覆盖的布尔值. 默认值为false, 意思是覆盖.

  • thetaStart -- 第一个分割面的开始角度, 默认值 = 0 (3点钟方向).

  • thetaLength -- 圆形扇形的圆心角通常称为θ。默认为2 * Pi,这形成了一个完整的锥体.

4、CylinderGeometry 圆筒几何体

CylinderGeometry(radiusTop, radiusBottom, height, radiusSegments, heightSegments, openEnded, thetaStart, thetaLength)

  • radiusTop -- 圆柱体顶端半径. 默认值为20.

  • radiusBottom -- 圆柱体底端半径. 默认值为20.

  • height -- 圆柱体高度. 默认值为100.

  • radiusSegments -- 围绕圆柱体周长的分割面数量. 默认值为8.

  • heightSegments -- 沿圆柱体高度的分割面数量. 默认值为1.

  • openEnded -- 指示圆柱体两端是打开还是覆盖的布尔值. 默认值为false, 意思是覆盖.

  • thetaStart -- 第一个分割面的开始角度, 默认值 = 0 (3点钟方向).

  • thetaLength -- 圆形扇形的圆心角通常称为θ。默认为2 * Pi,这形成了一个完整的圆柱体.

5、PlaneGeometry 平面几何体

PlaneGeometry(width, height, widthSegments, heightSegments)

  • width -- 沿X轴宽度.

  • height -- 沿Y轴高度

  • widthSegments -- 可选参数,x方向的分段数,缺省为1。

  • heightSegments -- 可选参数,y方向的分段数,缺省为1。

6、SphereGeometry 球形几何体

SphereGeometry(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength)

  • radius -- 球体半径. 默认值为50.

  • widthSegments -- 水平分割面的数量. 最小值为3, 默认值为8.

  • heightSegments -- 垂直分割面的数量. 最小值为2, 默认值为6.

  • phiStart -- 指定水平起始角度. 默认值为0.

  • phiLength -- 指定水平扫描角度大小. 默认值为 Math.PI * 2.

  • thetaStart -- 指定垂直起始角度. 默认值为0.

  • thetaLength -- 指定垂直扫描角度大小. 默认值为Math.PI.

7、TorusGeometry 空心环几何体

TorusGeometry(radius, tube, radialSegments, tubularSegments, arc)

  • radius -- 半径, 默认值为100.

  • tube -- 管道直径. 默认值为40.

  • radialSegments -- 默认值为8

  • tubularSegments -- 默认值为6.

  • arc -- 圆心角. 默认值为Math.PI * 2.

8、TorusKnotGeometry 环面扭结几何体

TorusKnotGeometry(radius, tube, tubularSegments, radialSegments, p, q)

  • radius -- 半径, 默认值为100.

  • tube -- 管道直径. 默认值为40.

  • tubularSegments -- 默认值为64.

  • radialSegments -- 默认值为8.

  • p -- 这个值决定了几何体绕旋转对称轴绕了多少圈. 默认值为2.

  • q -- 这个值决定了几何体绕环面的圆绕了多少圈. 默认值为3.

9、TextGeometry 3D文字几何体

TextGeometry(text, parameters)

text -- 要显示的文字

parameters -- 包含下面这些参数的对象

  • font -- THREE. 字体.

  • size -- Float. 大小.

  • height -- Float. 文字厚度. 默认值为50.

  • curveSegments -- Integer. 曲线上点的数量. 默认值为12.

  • bevelEnabled -- Boolean. 是否打开斜面. 默认值为False.

  • bevelThickness -- Float. 文本斜面的深度. 默认值为10.

  • bevelSize -- Float. 斜面离轮廓的距离. 默认值为8.

threejs 只提供了一部分3D字体模型. 汉字没戏了,

目前支持的字体有 helvetiker , optimer , gentilis , droid sans , droid serif 每种都包含normal正常体和 bold 粗体.


本文部分内容参照及引用:

Three.js入门指南
Demo查看
geometry