当前位置:首页 > JavaScript

js实现圆球

2026-02-01 06:55:04JavaScript

使用Canvas绘制圆球

在HTML5的Canvas中绘制圆球可以通过arc方法实现。以下是一个完整的示例代码:

<canvas id="myCanvas" width="200" height="200"></canvas>
<script>
  const canvas = document.getElementById('myCanvas');
  const ctx = canvas.getContext('2d');

  ctx.beginPath();
  ctx.arc(100, 100, 50, 0, Math.PI * 2);
  ctx.fillStyle = 'red';
  ctx.fill();
  ctx.closePath();
</script>

使用CSS创建3D圆球效果

通过CSS的border-radiusbox-shadow可以创建视觉上的3D球体效果:

js实现圆球

<div class="sphere"></div>
<style>
  .sphere {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, 
      #ffffff, #ff0000);
    box-shadow: inset -10px -10px 20px rgba(0,0,0,0.5);
  }
</style>

使用Three.js创建3D球体

对于更复杂的3D球体效果,可以使用Three.js库:

js实现圆球

import * as THREE from 'three';

const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
const renderer = new THREE.WebGLRenderer();

renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);

const geometry = new THREE.SphereGeometry(5, 32, 32);
const material = new THREE.MeshBasicMaterial({color: 0xffff00});
const sphere = new THREE.Mesh(geometry, material);
scene.add(sphere);

camera.position.z = 15;

function animate() {
  requestAnimationFrame(animate);
  sphere.rotation.x += 0.01;
  sphere.rotation.y += 0.01;
  renderer.render(scene, camera);
}
animate();

SVG实现圆球

使用SVG可以创建矢量圆球图形:

<svg width="200" height="200">
  <circle cx="100" cy="100" r="50" fill="blue" />
  <radialGradient id="gradient" cx="30%" cy="30%" r="70%">
    <stop offset="0%" stop-color="white"/>
    <stop offset="100%" stop-color="darkblue"/>
  </radialGradient>
</svg>

物理引擎中的圆球实现

使用matter.js物理引擎创建具有物理特性的圆球:

const Engine = Matter.Engine,
      Render = Matter.Render,
      World = Matter.World,
      Bodies = Matter.Bodies;

const engine = Engine.create();
const render = Render.create({
  element: document.body,
  engine: engine,
  options: {
    width: 800,
    height: 600,
    wireframes: false
  }
});

const ball = Bodies.circle(400, 200, 40, {
  restitution: 0.8,
  friction: 0.01
});

World.add(engine.world, [ball, Bodies.rectangle(400, 610, 810, 60, { isStatic: true })]);

Engine.run(engine);
Render.run(render);

标签: 圆球js
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…