美文网首页程序员
生成正多边形

生成正多边形

作者: Zero2none | 来源:发表于2017-11-14 16:44 被阅读58次
正多边形

思路

n多边形应该是是建立在上的,
θ随着 n 而变化,有θ=2π/n关系,
据初始顶点坐标即可依次求出所有顶点坐标。

Pycode

import pylab as pl
%matplotlib inline

def polygon(n=3, startX=100, startY=0, r=100):
    """
    Ploygon for docstring.
    Get ploygon x and y postions.
    ---------------------

    Paramter
        n: int, polygon's sides, default 3.
        startX: int, fitst x postion, default 100.
        startY: int, fitst y postion, default 0.
        startX: int, fitst x postion, default 100.
        r: int, radius, default 100.

    Returns
        x, y: list, x and y contain all postions.
    """
    theta = 2 * pl.pi / n
    x = [startX - r * pl.sin(theta * i) if i >
         0 else startX for i in range(n + 1)]
    y = [startY + r - r * pl.cos(theta * i)
         if i > 0 else startY for i in range(n + 1)]
    return x, y
x, y = polygon(3)
pl.plot(x, y)
ax = pl.gca()
ax.set_aspect(1)  # Make xticks' length qeual to yticks'length.
三角形的说

SourceCode

import pylab as pl


def polygon(n=3, startX=100, startY=0, r=100):
    """
    Ploygon for docstring.
    Get ploygon x and y postions.
    ---------------------

    Paramter
        n: int, polygon's sides, default 3.
        startX: int, fitst x postion, default 100.
        startY: int, fitst y postion, default 0.
        startX: int, fitst x postion, default 100.
        r: int, radius, default 100.

    Returns
        x, y: list, x and y contain all postions.
    """
    theta = 2 * pl.pi / n
    x = [startX - r * pl.sin(theta * i) if i >
         0 else startX for i in range(n + 1)]
    y = [startY + r - r * pl.cos(theta * i)
         if i > 0 else startY for i in range(n + 1)]
    return x, y


x, y = polygon(3)
pl.plot(x, y)
ax = pl.gca()
ax.set_aspect(1)  # Make xticks' length qeual to yticks'length.
pl.show()

写在后面的

啊~在用程序画图是建立在坐标上的,没有坐标,那就算了喽


参考


最后,就酱


填坑,补完 https://onlyyouknow.me/2018/11/04/Regular-polygon-algorithm.html

相关文章

  • 生成正多边形

    思路 正n多边形应该是是建立在圆上的,θ随着 n 而变化,有θ=2π/n关系,据初始顶点坐标即可依次求出所有顶点坐...

  • 以动画的形式画多边形(JAVA)

    最初的目标 给定正多边形中心,给定正多边形边数,画一个正多边形出来。 需要使用的数学知识有 1.正多边形任意相邻两...

  • 阿基米德和刘徽是如何计算圆周率的(一)

    众所周知,阿基米德计算圆周率的方法是采用外切正多边形和内接正多边形两个方面逼近的。也就是说圆的周长比内接正多边形大...

  • codeforces270A

    题目:要求判断输入的数字a是否为正多边形的内角,是则输出“YES”,否则输出“NO” 分析:正多边形的内角和为(n...

  • iOS图形绘制

    -------------------简单线条、图形------------------- 绘制圆角,正多边形 -...

  • Android自定义View实现蛛网控件

    目录 效果展示 实现步骤 绘制正多边形 绘制正多边形中心点到顶点的连线 绘制数据所代表的值点 绘制数据点连起来的半...

  • 第六章第三十六题(几何:正多边形的面积)(Geometry: a

    *6.36(几何:正多边形的面积)正多边形是一个n条边的多边形,它的每条边的长度都相等,而且所有角的角度也相等(即...

  • 圆内接正多边形周长

    讲解对象:圆内接正多边形周长作者:融水公子 rsgz

  • CAD正多边形快捷键POL

    正多边形的快捷键是POL,POL加空格键是出现正多边形,上显示输入数目的边数,不能低于2条边,最少都需要3条边,是...

  • 每日一记2021.6.10

    今日学习了圆在直线上滚动➕正多边形与迭代,加油

网友评论

    本文标题:生成正多边形

    本文链接:https://www.haomeiwen.com/subject/adrfvxtx.html