当前位置:首页 > 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球体效果:

<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库:

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物理引擎创建具有物理特性的圆球:

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实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…

js实现跑马灯

js实现跑马灯

实现跑马灯效果 使用HTML和JavaScript可以轻松实现跑马灯效果。以下是两种常见的实现方式: HTML结构 <div id="marquee"> <span>…

js计算器的实现

js计算器的实现

实现基础结构 HTML部分需要创建计算器的基本框架,包含显示区域和按钮。使用<div>容器包裹整个计算器,内部设置一个显示屏和多个按钮。 <div class="calculato…

js实现弹框

js实现弹框

使用 alert 实现简单弹框 JavaScript 的 alert 方法可以直接显示一个简单的弹框,内容为纯文本: alert("这是一个简单的弹框"); 使用 confirm 实现确认弹框…