写个java的正方体代码
时间: 2024-05-12 19:17:18 浏览: 18
好的,以下是一个简单的Java代码示例,可以计算正方体的体积和表面积。
```
import java.util.Scanner;
public class Cube {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入正方体的边长:");
double side = sc.nextDouble();
double volume = side * side * side;
double surfaceArea = 6 * side * side;
System.out.println("正方体的体积为: " + volume);
System.out.println("正方体的表面积为: " + surfaceArea);
}
}
```
请注意,此示例仅为演示目的。在实际情况中,应该添加更多的输入验证和异常处理以确保代码的健壮性。
相关问题
用java web写一个可旋转的正方体代码
请问您需要一个静态的可旋转的正方体还是需要动态的交互式旋转效果?无论是哪种情况,实现正方体旋转的核心思想都是相同的,就是通过对正方体的旋转变换来实现旋转效果。
以下是一个用 Java Web 实现可旋转的正方体的代码示例:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Rotating Cube</title>
<style>
canvas {
width: 500px;
height: 500px;
border: solid 1px black;
margin: 0 auto;
}
</style>
</head>
<body>
<canvas id="myCanvas"></canvas>
<script>
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
//定义正方体的八个顶点坐标
var vertices = [
[-50, -50, -50],
[50, -50, -50],
[50, 50, -50],
[-50, 50, -50],
[-50, -50, 50],
[50, -50, 50],
[50, 50, 50],
[-50, 50, 50]
];
//定义正方体的六个面
var faces = [
[0, 1, 2, 3],
[1, 5, 6, 2],
[5, 4, 7, 6],
[4, 0, 3, 7],
[4, 5, 1, 0],
[3, 2, 6, 7]
];
//定义正方体的初始旋转角度
var angleX = 0;
var angleY = 0;
var angleZ = 0;
//旋转矩阵计算函数
function rotate(theta, axis) {
var c = Math.cos(theta);
var s = Math.sin(theta);
switch (axis) {
case "x":
return [
[1, 0, 0],
[0, c, -s],
[0, s, c]
];
case "y":
return [
[c, 0, s],
[0, 1, 0],
[-s, 0, c]
];
case "z":
return [
[c, -s, 0],
[s, c, 0],
[0, 0, 1]
];
}
}
//绘制正方体的函数
function drawCube() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
var projected = [];
for (var i = 0; i < vertices.length; i++) {
//将顶点坐标按照旋转矩阵进行变换
var v = vertices[i];
var rx = rotate(angleX, "x");
var ry = rotate(angleY, "y");
var rz = rotate(angleZ, "z");
var r = math.multiply(math.multiply(rx, ry), rz);
var v2 = math.multiply(r, math.transpose([v]));
//将变换后的顶点坐标进行投影
var fov = 500;
var sx = (v2[0][0] * fov) / (v2[2][0] + fov) + canvas.width / 2;
var sy = (v2[1][0] * fov) / (v2[2][0] + fov) + canvas.height / 2;
projected.push([sx, sy]);
}
for (var i = 0; i < faces.length; i++) {
//绘制正方体的六个面
var f = faces[i];
ctx.beginPath();
ctx.moveTo(projected[f[0]][0], projected[f[0]][1]);
for (var j = 1; j < f.length; j++) {
ctx.lineTo(projected[f[j]][0], projected[f[j]][1]);
}
ctx.closePath();
ctx.strokeStyle = "#000";
ctx.stroke();
ctx.fillStyle = "#fff";
ctx.fill();
}
}
//绑定鼠标移动事件,实现旋转效果
canvas.addEventListener("mousemove", function (e) {
angleY = (e.clientX - canvas.width / 2) / 100;
angleX = (e.clientY - canvas.height / 2) / 100;
drawCube();
});
//初始化绘制正方体
drawCube();
</script>
</body>
</html>
```
这个示例中使用了 HTML5 的 canvas 元素来绘制正方体,使用了 math.js 这个 JavaScript 库来进行矩阵计算。在鼠标移动时,通过修改正方体的角度参数,实现了正方体的旋转效果。
编写java程序ThreeDimen计算圆球、圆柱、圆锥、长方体、正方体的体积。
可以的,以下是Java代码:
```java
import java.util.Scanner;
public class ThreeDimen {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int choice;
do {
System.out.println("请选择计算形体的类型:");
System.out.println("1.圆球");
System.out.println("2.圆柱");
System.out.println("3.圆锥");
System.out.println("4.长方体");
System.out.println("5.正方体");
System.out.println("0.退出");
choice = input.nextInt();
switch (choice) {
case 1:
System.out.print("请输入圆球的半径:");
double radius1 = input.nextDouble();
double volume1 = 4 / 3.0 * Math.PI * Math.pow(radius1, 3);
System.out.printf("圆球的体积为:%.2f\n", volume1);
break;
case 2:
System.out.print("请输入圆柱的半径:");
double radius2 = input.nextDouble();
System.out.print("请输入圆柱的高度:");
double height2 = input.nextDouble();
double volume2 = Math.PI * Math.pow(radius2, 2) * height2;
System.out.printf("圆柱的体积为:%.2f\n", volume2);
break;
case 3:
System.out.print("请输入圆锥的半径:");
double radius3 = input.nextDouble();
System.out.print("请输入圆锥的高度:");
double height3 = input.nextDouble();
double volume3 = 1 / 3.0 * Math.PI * Math.pow(radius3, 2) * height3;
System.out.printf("圆锥的体积为:%.2f\n", volume3);
break;
case 4:
System.out.print("请输入长方体的长:");
double length4 = input.nextDouble();
System.out.print("请输入长方体的宽:");
double width4 = input.nextDouble();
System.out.print("请输入长方体的高:");
double height4 = input.nextDouble();
double volume4 = length4 * width4 * height4;
System.out.printf("长方体的体积为:%.2f\n", volume4);
break;
case 5:
System.out.print("请输入正方体的边长:");
double side5 = input.nextDouble();
double volume5 = Math.pow(side5, 3);
System.out.printf("正方体的体积为:%.2f\n", volume5);
break;
case 0:
break;
default:
System.out.println("输入无效,请重新输入!");
break;
}
} while (choice != 0);
System.out.println("程序退出。");
}
}
```
希望能够帮助到您。