第2章:几何方面:六边形面积

本文介绍了一个使用Java编程语言实现的六边形面积计算程序,通过用户输入六边形的边长,程序自动计算并输出六边形的面积。公式采用面积计算公式area=(3*Math.pow(3,0.5))/2*(s*s),通过实例演示了如何在Java中进行数学计算和用户交互。
/**
 * 几何方面:六边形面积。
 * 提示用户输入六边形的边长:
 * 显示它的面积。
 * 计算公式为: area = (3 * Math.pow(3, 0.5)) / 2 * (s * s)
 * 下面是一个例子:
 * ——————————————————————————————————————————
 * 
 */
package Test;

import java.util.Scanner;

public class T222Scanner {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.print("Enter the side: ");
		double side = input.nextDouble();
		
//		double area = (3 * Math.pow(3, 0.5)) / 2 * (side * side);
//		System.out.println("The area of the hexagon is " + area);
	}
}

# 六边形分形几何图形绘制 下面是一个使用Python turtle库绘制六边形分形的完整实现: ```python import turtle import math # 设置画布 screen = turtle.Screen() screen.setup(800, 800) screen.title("六边形分形几何图形") screen.bgcolor("black") # 创建画笔 t = turtle.Turtle() t.speed(0) # 最快速度 t.pensize(1) t.hideturtle() def draw_hexagon(x, y, radius): """ 绘制一个正六边形 参数: x, y: 六边形中心坐标 radius: 外接圆半径 """ # 计算六个顶点坐标 points = [] for i in range(6): angle = math.radians(60 * i) # 每个角60度 px = x + radius * math.cos(angle) py = y + radius * math.sin(angle) points.append((px, py)) # 绘制六边形 t.penup() t.goto(points[0]) t.pendown() for i in range(1, 6): t.goto(points[i]) t.goto(points[0]) # 回到起点闭合图形 def draw_hex_fractal(x, y, radius, depth): """ 递归绘制六边形分形 参数: x, y: 当前六边形中心坐标 radius: 当前六边形半径 depth: 当前递归深度 """ if depth == 0: # 停止条件 return # 根据深度设置颜色(创建渐变效果) colors = ["#FF6B6B", "#4ECDC4", "#FFE66D", "#1A535C", "#F7FFF7"] t.pencolor(colors[depth % len(colors)]) # 绘制当前六边形 draw_hexagon(x, y, radius) # 计算六边形的半径(缩小为原来的40%) new_radius = radius * 0.4 # 计算六个边上新六边形的位置 # 在每个顶点方向上放置一个子六边形 for i in range(6): angle = math.radians(60 * i) # 子六边形中心距离父六边形中心的距离 distance = radius + new_radius new_x = x + distance * math.cos(angle) new_y = y + distance * math.sin(angle) # 递归绘制子六边形 draw_hex_fractal(new_x, new_y, new_radius, depth - 1) # 另一种风格:在六边形内部绘制更小的六边形 def draw_inner_hex_fractal(x, y, radius, depth): """ 向内收缩的六边形分形 """ if depth == 0: return # 设置颜色 colors = ["#FF9AA2", "#FFB7B2", "#FFDAC1", "#E2F0CB", "#B5EAD7"] t.pencolor(colors[depth % len(colors)]) # 绘制当前六边形 draw_hexagon(x, y, radius) # 计算内部六边形的半径 new_radius = radius * 0.7 # 缩小比例 # 递归绘制内部六边形 draw_inner_hex_fractal(x, y, new_radius, depth - 1) # 第三种风格:蜂巢式分形 def draw_honeycomb_fractal(x, y, radius, depth): """ 蜂巢模式六边形分形 """ if depth == 0: return # 绘制中心六边形 t.pencolor("#FFD700") draw_hexagon(x, y, radius) # 如果还有深度,继续在周围绘制 if depth > 1: new_radius = radius * 0.8 # 在六个方向上绘制子分形 for i in range(6): angle = math.radians(60 * i) distance = radius * 1.5 # 间距 new_x = x + distance * math.cos(angle) new_y = y + distance * math.sin(angle) draw_honeycomb_fractal(new_x, new_y, new_radius, depth - 1) # 选择要绘制的分形类型 t.clear() # 清空画布 # 选项1:向外扩展的六边形分形 t.color("cyan") draw_hex_fractal(0, 0, 100, 4) # 选项2:向内收缩的六边形分形(取消注释下面两行可查看效果) # t.clear() # draw_inner_hex_fractal(0, 0, 150, 6) # 选项3:蜂巢式分形(取消注释下面两行可查看效果) # t.clear() # draw_honeycomb_fractal(0, 0, 60, 3) # 更新屏幕并等待点击关闭 screen.update() screen.exitonclick() ``` ## 代码解释 ### 1. 核心函数说明 #### `draw_hexagon(x, y, radius)` - **功能**:绘制一个以(x,y)为中心、radius为外接圆半径的正六边形 - **原理**: - 正六边形可以看作是将圆周6等分 - 每个顶点的角度间隔60度(360°/6) - 使用三角函数计算各顶点坐标:`x + r*cos(θ)`, `y + r*sin(θ)` #### `draw_hex_fractal(x, y, radius, depth)` - **功能**:向外扩展的六边形分形 - **特点**: - 在每个父六边形的六个顶点方向上放置子六边形 - 子六边形与父六边形外切 - 形成星状扩散效果 - 适合表现生长、扩张的概念 #### `draw_inner_hex_fractal(x, y, radius, depth)` - **功能**:向内收缩的六边形分形 - **特点**: - 每个子六边形位于同一中心点 - 半径逐层缩小 - 形成同心嵌套效果 - 类似于俄罗斯套娃或涟漪效果 #### `draw_honeycomb_fractal(x, y, radius, depth)` - **功能**:蜂巢模式分形 - **特点**: - 模拟蜜蜂蜂巢的自然结构 - 六边形紧密排列,共享边线 - 展现出高效的几何填充模式 - 体现自然界中的最优结构 ### 2. 分形几何特性 #### 对称性 - 六重旋转对称:每旋转60度图案不变 - 反射对称:通过中心点的任意直径都是对称轴 - 这种高度对称性使得六边形分形特别美观 #### 自相似性 - 每一层的结构都与整体相似 - 放大任意部分都能看到相同的模式 - 体现了分形的核心特征 #### 空间填充效率 - 六边形是能够密铺平面的最复杂正多边形 - 相比方形和三角形,具有更好的空间利用率 - 周长与面积比最优,节省边界长度 ### 3. 数学原理 #### 顶点坐标计算 对于正六边形,第i个顶点坐标为: ``` x_i = center_x + radius × cos(60° × i) y_i = center_y + radius × sin(60° × i) ``` 其中i = 0, 1, 2, 3, 4, 5 #### 邻接关系 两个相邻六边形中心的距离 = √3 × radius 这个距离确保了六边形能够完美贴合而不重叠 ### 4. 视觉效果控制 #### 递归深度(depth) - 控制分形的复杂程度 - depth=1:只有基础形状 - depth=2:一级子结构 - depth越大越复杂,但计算时间也越长 #### 缩放比例 - 决定了分形的密度和紧凑程度 - 比例大(如0.8):结构松散,有更多空白 - 比例小(如0.4):结构紧凑,层次分明 #### 颜色方案 - 使用循环颜色数组创建视觉节奏 - 不同深度使用不同颜色增强层次感 - 黑色背景突出明亮的线条 ### 5. 运行说明 1. **环境要求**: - Python 3.x - 内置turtle库(无需额外安装) 2. **执行方法**: ```bash python hexagon_fractal.py ``` 3. **交互操作**: - 点击窗口任意位置关闭程序 - 可以通过注释/取消注释不同分形类型的调用来查看各种效果 4. **参数调整建议**: - 初始半径:80-150像素(适配画布大小) - 递归深度:3-5级(平衡效果和性能) - 缩放比例:0.3-0.8(控制疏密程度) ##
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值