利用Pygame绘制圆环的示例代码

目录
  • 三角函数
  • 弧度和角度的关系
  • 基本包和事件捕捉
  • 主程序
  • 全部代码

三角函数

如果我们以OP作为圆的半径r,以o点作为圆的圆心,圆上的点的x坐标就是r * cos a ,y坐标就是 r * sin a。

python中提供math.cos() 和 math.sin(),要求参数为弧度。

弧度和角度的关系

PI代表180度,PI就是圆周率:3.1415926 535 897392 23846,python提供了角度和弧度的转化

math.degress() 弧度转角度

math.radiens() 角度转弧度

a = math.cos(math.radians(90))

90度的横坐标为0,但因为PI不是浮点小数,导致运算不准确,是接近0的一个值。

基本包和事件捕捉

初始化窗口,配置圆心和半径,添加了定时器便于控制绘制的速度

import sys, random, math, pygame
from pygame.locals import *

pygame.init()
screen = pygame.display.set_mode((600, 500))
pygame.display.set_caption("梦幻圆")
screen.fill((0, 0, 100))

pos_x = 300
pos_y = 250
radius = 200
angle = 360

# 定时器
mainClock = pygame.time.Clock()
while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    keys = pygame.key.get_pressed()
    if keys[K_ESCAPE]:
        pygame.quit()
        sys.exit()

主程序

角度不断的加,如果超过360度则重新重1开始,随机一个颜色,计算出这个角度上的大圆上的点,以这个点画一个半径为10的圆。

angle += 1
    if angle >= 360:
        angle = 0

    r = random.randint(0, 255)
    g = random.randint(0, 255)
    b = random.randint(0, 255)
    color = r, g, b

    x = math.cos(math.radians(angle)) * radius
    y = math.sin(math.radians(angle)) * radius

    pos = (int(pos_x + x), int(pos_y + y))
    pygame.draw.circle(screen, color, pos, 10, 0)

    pygame.display.update()
    mainClock.tick(20)

全部代码

import sys, random, math, pygame
from pygame.locals import *

pygame.init()
screen = pygame.display.set_mode((600, 500))
pygame.display.set_caption("梦幻圆")
screen.fill((0, 0, 100))

pos_x = 300
pos_y = 250
radius = 200
angle = 360

# 定时器
mainClock = pygame.time.Clock()

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    keys = pygame.key.get_pressed()
    if keys[K_ESCAPE]:
        pygame.quit()
        sys.exit()

    angle += 1
    if angle >= 360:
        angle = 0

    r = random.randint(0, 255)
    g = random.randint(0, 255)
    b = random.randint(0, 255)
    color = r, g, b

    x = math.cos(math.radians(angle)) * radius
    y = math.sin(math.radians(angle)) * radius

    pos = (int(pos_x + x), int(pos_y + y))
    pygame.draw.circle(screen, color, pos, 10, 0)

    pygame.display.update()
    mainClock.tick(10)

到此这篇关于利用Pygame绘制圆环的示例代码的文章就介绍到这了,更多相关Pygame绘制圆环内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 基于Python绘制美观动态圆环图、饼图

    前言 本文采用PyEchartsv1.x版本进行绘制地图. 注:PyEcharts分为 v0.5.x 和 v1.x 两个大版本,v0.5.x 和 v1.x 间不兼容,v0.5.x是基于Python2.7+.3.4+版本开发的,而v1.x是一个全新的版本,它是基于Python3.6+版本开发的,另外经PyEcharts开发团队决定,0.5.x 版本将不再进行维护. 绘制的饼图效果是这样的: 没有安装PyEcharts的,先安装PyEcharts: 安装好PyEcharts之后,就可以将需要使用的模

  • Python 用turtle实现用正方形画圆的例子

    最近发现一个很有意思的画图的python库,叫做turtle,这里先说下用turtle这个库来实现用正方形画圆的思路. 每次都用乌龟(turtle)来画出一个正方形,然后通过旋转3°后,继续画一样的正方形,在通过120次循环后就实现了完整的圆,这里当然也可以用其他的角度和次数,只要能完成360度就可以了. 先看完成的图形和代码. 代码如下: import turtle window = turtle.Screen() #设置好画图的基本参数 window.bgcolor("blue")

  • pygame学习笔记(1):矩形、圆型画图实例

    pygame是一个设计用来开发游戏的python模块,其实说白了和time.os.sys都是一样的东东.今天开始正式学习pygame,下载地址:www.pygame.org.下载后安装完成即可,在pygame的学习中,我使用了spe编辑器,感觉还不错. 1.pygame窗口 pygame绘制图形前,首先需要建立一个窗口,说来很简单,请看下面的代码,怎么样,是不是很简单. 复制代码 代码如下: import pygame  #这句不用注释了吧,呵呵 pygame.init()  #模块初始化,任何

  • python实现画循环圆

    如下所示: import turtle for i in range(100,0,-5): # 从100到0循环递减每次减5 turtle.circle(i,90) 不懂为啥第一次运行会出错,错了再运行一遍for就出来了! 以上这篇python实现画循环圆就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 利用Pygame绘制圆环的示例代码

    目录 三角函数 弧度和角度的关系 基本包和事件捕捉 主程序 全部代码 三角函数 如果我们以OP作为圆的半径r,以o点作为圆的圆心,圆上的点的x坐标就是r * cos a ,y坐标就是 r * sin a. python中提供math.cos() 和 math.sin(),要求参数为弧度. 弧度和角度的关系 PI代表180度,PI就是圆周率:3.1415926 535 897392 23846,python提供了角度和弧度的转化 math.degress() 弧度转角度 math.radiens(

  • 利用OpenLayer绘制扇形的示例代码

    目录 创建openlayers地图 绘制扇形方法 我在网上看了很多说是绘制扇形的方法,但是我用的时候都不是很好玩,所以说呢,我自己整理了一下,符合了我想要的效果,尽管我能力有限,还是决定分享一下,因为找资料太难了! 我比较懒,就不废话了,直接上代码! 创建openlayers地图 包我就不复制了,根据官网提供的API自己引用吧! openlayers API地址 创建地图 // 实例化Map map = new Map({ // 创建一个地图 layers: [new TileLayer({ s

  • Python利用Turtle绘制Technoblade的示例代码

    在刚过去不久的6月30日那天,国外一位在YouTube拥有上千万粉丝的我的世界游戏主播Technoblade因癌症与世长辞,年仅23岁,他并没有离开我们,只是用另外一种方式活在了这个世界上. 为了纪念他,特地写了这篇文章,教大家用Turtle绘制出Technoblade,运行效果如下: 代码如下: 首先,用坐标表示每个像素块的颜色,定义一个列表 POS=[ [4,0,(213,164,9)], [6,0,(213,164,9)], [9,0,(213,164,9)], [11,0,(213,16

  • Android利用贝塞尔曲线绘制动画的示例代码

    目录 彩虹系列 弹簧动画 复杂立体感动画 总结 前面我们花了几篇介绍了贝塞尔曲线的原理和绘制贝塞尔曲线,着实让我们见识到了贝塞尔曲线的美.好奇心驱使我想看看贝塞尔曲线动起来会是什么样?本篇就借由动画驱动贝塞尔曲线绘制看看动起来的贝塞尔曲线什么效果. 彩虹系列 通过动画控制绘制的结束点,就可以让贝塞尔曲线动起来.例如下面的动图展示的效果,看起来像搭了一个滑滑梯一样.实际上就是用7条贝塞尔曲线实现的,我们使用了 Animation 对象的值来控制绘制的结束点,从而实现了对应的动画效果. 具体源码如下

  • Android利用Flutter path绘制粽子的示例代码

    目录 前言 绘制 基本轮廓 粽叶 嘴巴 眼睛 腮红 手&脚 头巾 咸甜是一家 发声 动画控制嘴巴开合 用到的技术点 总结 前言 大家好,端午将至,首先提前祝小伙伴端午安康,端午作为中华民族的非常重要的传统节日,粽子那是必不可少的,但是你真的知道粽子的历史吗? 今天跟随本篇文章用Flutter path画一个会科普节日的的粽子吧- 绘制 基本轮廓 首先我们需要将粽子的基本轮廓绘制出来,通过图片可以看到粽子的轮廓是一个圆圆的三角形状, 本篇文章所有的图形都是用纯Path路径制作,这里我们可以将粽子的

  • Python绘制灯笼的示例代码

    目录 一.效果展示 二.代码展示 三.拓展 一年一度的元宵节刚刚过去,由于时间关系,在元宵节当天晚上11点多才完成本文灯笼的绘制.这两天又在忙着别的事情,所以现在才跟大家分享. 一.效果展示 在介绍代码之前,先来看下本文的实现效果. 视频链接 二.代码展示 接下来展示绘制灯笼的全量源代码 import os import pygame import turtle as t ##画外轮廓 t.title('元宵节字谜灯笼') t.setup(startx=0, starty = 0) #画灯笼提线

  • Python绘制时钟的示例代码

    目录 导入需要的包设置变量 写数字 绘制时针 完整代码 导入需要的包设置变量 from datetime import datetime from pygame.locals import * import sys, math, pygame def print_text(font, x, y, text, color=(255, 255, 255)): img_text = font.render(text, True, color) screen.blit(img_text, (x, y))

  • Python+Turtle绘制幸运草的示例代码

    目录 一.效果展示 二.代码详解 1.导入库 2.播放音乐 3.定义画四叶草的函数 4.调用函数绘制四叶草 5.设置写文字的函数 幸运草又名四叶草,一般指四叶的苜蓿.或车轴草. 在十万株苜蓿草中,你可能只会发现一株是四叶草,机会率大约是十万分之一. 因此四叶草是国际公认的幸运象征. 本文主要介绍运用turtle库控制函数绘制四叶草,希望见者皆好运,祝福大家的生活都能幸福安康. 一.效果展示 在介绍代码之前,先来看下本文的实现效果. 可以把视频中的名字替换成你所想的名字,并参考下面步骤把Pytho

  • Python+Turtle绘制蜘蛛侠的示例代码

    目录 一.效果展示 二.代码详解 1.导入库 2.播放音乐 3.定义画蜘蛛侠上半身的函数 4.定义画左手和右手的函数 5.定义画蜘蛛的函数 6.调用函数绘制图形 蜘蛛侠(Spider-Man)即彼得·帕克(Peter Parker),是美国漫威漫画旗下超级英雄. 由编剧斯坦·李和画家史蒂夫·迪特科联合创造,初次登场于<惊奇幻想>(Amazing Fantasy)第15期(1962年8月). 因为广受欢迎,几个月后,便开始拥有以自己为主角的单行本漫画. 网易云中关于蜘蛛侠主题曲热评过万的评论说到

  • Python+turtle绘制对称图形的示例代码

    目录 1.图1 2.图2 3.图3 4.图4 5.图5 6.图6 最近有个朋友,想要我帮忙用python画几个图,在画的过程中觉得有些图还挺有意思的,分享给大家. 1.图1 第一个图是由三角形组成的花,感兴趣的小伙伴可以自己尝试在python中用turtle库绘制一下. 具体代码如下: # -*- coding: UTF-8 -*- ''' 代码用途 :画对称图形 作者 :阿黎逸阳 博客 : https://blog.csdn.net/qq_32532663/article/details/10

随机推荐