canvas标签画正多边形函数

<!DOCTYPE HTML>
<canvas id="canvas" width="600px" height="500px" style="border:1px solid #A6A7A6;"></canvas>
<script>
	/*
	*以(x,y)为中心,半径为r的正n边形
	*@param c 是canvas的上下文对象
	*@param angle 是第一个点(以最上面的顶点为准)偏离中心点(x,y)的弧度
	*	angle为0时第一个点和中心的x想等,如第一个正方形
	#@param counterclockwise 是angle偏离是顺时针还是逆时针
	*/

	function polygon(c,n,x,y,r,angle,counterclockwise){
		var angle = angle || 0;
		var counterclockwise = counterclockwise || false;
		c.moveTo(x + r*Math.sin(angle), y - r*Math.cos(angle));		//确立第一个点
		var delta = 2*Math.PI/n;		//相邻两个顶点之间的夹角
		for(var i=0;i<n;i++){			//其他顶点
			angle += counterclockwise ? -delta : delta;		//角度调整
			c.lineTo(x + r*Math.sin(angle), y - r*Math.cos(angle));
		}
		c.closePath();		//首位相邻

	}
	var canvas = document.getElementById('canvas');
	var c = canvas.getContext("2d");
	c.beginPath();
	polygon(c,4,60,200,40);
	polygon(c,4,180,200,40,Math.PI/4);
	polygon(c,6,300,200,40,Math.PI/6);
	polygon(c,12,460,200,40);
	c.fillStyle = '#f00';
	c.fill();
</script>





  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用turtle库中的circle函数正多边形。具体步骤如下: 1. 导入turtle库 ```python import turtle ``` 2. 创建布和笔 ```python canvas = turtle.Screen() pen = turtle.Turtle() ``` 3. 设置笔的颜色和粗细 ```python pen.color('red') pen.pensize(2) ``` 4. 定义正多边形的边数和边长 ```python num_sides = 6 # 正六边形 side_length = 100 # 边长为100 ``` 5. 计算正多边形的内角度数 ```python interior_angle = (num_sides - 2) * 180 / num_sides ``` 6. 循环正多边形的每条边 ```python for i in range(num_sides): pen.forward(side_length) pen.left(180 - interior_angle) ``` 7. 关闭布 ```python canvas.exitonclick() ``` 完整代码如下: ```python import turtle canvas = turtle.Screen() pen = turtle.Turtle() pen.color('red') pen.pensize(2) num_sides = 6 # 正六边形 side_length = 100 # 边长为100 interior_angle = (num_sides - 2) * 180 / num_sides for i in range(num_sides): pen.forward(side_length) pen.left(180 - interior_angle) canvas.exitonclick() ``` ### 回答2: 使用Python绘制正多边形,可以利用turtle模块中的circle函数来实现。该函数可以绘制一个指定半径和边数的圆形,通过调整参数可以使其变为一个正多边形。 首先,我们需要导入turtle模块: ```python import turtle ``` 然后,可以创建一个布,并设置其背景色和笔颜色: ```python screen = turtle.Screen() screen.bgcolor("white") turtle.color("black") ``` 接下来,可以创建一个turtle对象,并设置其形状为箭头: ```python pen = turtle.Turtle() pen.shape("arrow") ``` 然后,可以定义一个函数来绘制正多边形。该函数需要传入两个参数,分别为半径和边数: ```python def draw_polygon(radius, sides): angle = 360 / sides # 计算出每个内角的度数 for _ in range(sides): pen.forward(radius) # 前进半径的距离 pen.right(angle) # 右转指定角度 ``` 在主程序中,可以调用该函数来绘制正多边形。比如,可以绘制一个边长为100的正五边形: ```python draw_polygon(100, 5) ``` 最后,不要忘记调用turtle模块中的done函数来保持窗口不关闭: ```python turtle.done() ``` 通过上述步骤,我们就能够使用Python绘制一个正多边形了。 ### 回答3: 在Python中,可以使用turtle模块的circle函数来绘制正多边形。首先,我们需要导入turtle模块。 ```python import turtle ``` 然后,创建一个布和一个笔。 ```python window = turtle.Screen() pen = turtle.Turtle() ``` 接下来,我们可以使用circle函数来绘制正多边形正多边形的每个内角都相等,因此我们可以通过改变circle函数的半径和角度参数来实现。 ```python pen.circle(100, steps=6) # 绘制边长为100的六边形 ``` 其中,第一个参数表示圆的半径,第二个参数steps表示多边形的边数。 最后,我们需要保持窗口不关闭,以便查看绘制的图形。 ```python turtle.done() ``` 以上就是使用Python的turtle模块绘制正多边形的基本步骤。可以根据需要调整半径和边数来绘制不同大小和形状的正多边形
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值