Pygame(四)画椭圆,弧

前情提要:

作业答案

  • 正方形与内切圆
def rect_circle():pygame.init()screen = pygame.display.set_mode((800, 600))screen.fill((255,255,255))# 画正方形rect = pygame.Rect(300, 200, 200, 200)pygame.draw.rect(screen, (0, 0, 255), rect, width = 1)# 画内切圆, 半径因为正方形的线宽占了一个,所以半径要相应的少一个pos = 400, 300radius = 99pygame.draw.circle(screen, (255, 0, 0), pos, radius, )pygame.display.update()while 1:for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()pygame.quit()

效果图:

  • 圆与内接正方形
def circle_rect():pygame.init()screen = pygame.display.set_mode((800, 600))screen.fill((255,255,255))# 画外面的圆pos = 400, 300radius = 101pygame.draw.circle(screen, (255, 0, 0), pos, radius, )# 画内接正方形width = height = 100*1.41  # 计算内接正方形的宽高left, top = 400 - width/2, 300-height/2  # 计算内接正方形的左上角坐标rect = pygame.Rect(left, top, width, height)pygame.draw.rect(screen, (0, 0, 255), rect)pygame.display.update()while 1:for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()pygame.quit()

效果图:

本节提要

内容详情

画椭圆

pygame.draw.ellipse(Surface, color, rect, width)

参数说明

Surface: Surface对象
color: 线条颜色
rect:椭圆的外切矩形
width: 线粗(width=0 是实心椭圆)
备注:
当矩形是一个正方形的时候,画出来的椭圆其实是一个圆_.

示例代码:

# 画椭圆
def draw_ellipse():pygame.init()screen = pygame.display.set_mode((800, 600))screen.fill((255, 255, 255))# 画椭圆rect = (100,100,200,100)pygame.draw.ellipse(screen, (0,255,255), rect, 1)pygame.display.update()while 1:for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()pygame.quit()

效果图:

说明一下:
这里的椭圆是用矩形框起来的.是矩形的内切椭圆.因此,在实际使用的时候,要根据椭圆的中心位置以及椭圆的宽度与高度来计算具体的参数值
读者可以自行将其转化公式写一下,体会一下.

画弧

pygame.draw.arc(Surface,color, rect, start_angle, end_angle, width)

参数说明:

Surface: Surface对象
color: 线条颜色
rect:弧所在的圆(椭圆)的外切矩形
width: 线粗(width=0时看不见)
start_angle:起始角度
end_angle:终止角度

备注:角度的问题

  • 角度以中心为起点,向右方向为0度(3点角度为0,逆时针方向为正, 12点为90度,9点为180度, 6点为270度
  • 角度是弧度制表示的.pi = 180度, pi/2 = 90度.
  • pi这个常数来自math库
  • 当角度超过360度时
  • 角度取负值时,顺时针方向旋转计算.
  • 弧的选取一定是从起点到终点逆时针方向截取.

####示例代码

    pygame.init()screen = pygame.display.set_mode((800, 600))screen.fill((255, 255, 255))# 画椭圆rect = (100,100,200,100)pygame.draw.arc(screen, (0,255,255), rect, 1.5, -1, width=1)rect = (300, 100, 100, 100)pygame.draw.arc(screen, (0,0,255), rect, 0, pi/2*3, width=2)pygame.display.update()while 1:for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()pygame.quit()

效果图:

作业:

画出如下图形:

Pygame(四)画椭圆,弧相关推荐

  1. 四心圆法画椭圆原理_四心圆法画椭圆的解析画法

    四心圆法画椭圆的解析画法 本文 舟绍 一种 用解析 法 确定 四心 四的 圆心 位置 画椭 圆的方法 .供 容器 设计 者及 制 图者 画椭 圆 时参考 . 关键饲-竺燮 解析法画蚀 怖 溃 四 心圆 ...

  2. Python+OpenCV 图像处理系列(3)—— 画线、矩形、画圆、画椭圆、画多边形

    OpenCV 中的绘图函数 使用 OpenCV 绘制不同几何图形,其中包括的函数有 cv2.line() cv2.circle() cv2.rectangle() cv2.ellipse() cv2. ...

  3. python turtle画椭圆-Python易学就会(五)turtle绘制椭圆与递归

    前两篇文章基本涵盖了turtle的大部分功能,同时也借由对turtle功能的展示,厘清了Python的一些语法特点,以利于新手入门.但是短短几个例子,阐述得还是有限,这里再展开两个知识点,一方面对tu ...

  4. python画椭圆-python opencv圆、椭圆与任意多边形的绘制实例详解

    圆形的绘制 : OpenCV中使用circle(img,center,radius,color,thickness=None,lineType=None,shift=None)函数来绘制圆形 impo ...

  5. python画椭圆-Python易学就会(五)turtle绘制椭圆与递归

    前两篇文章基本涵盖了turtle的大部分功能,同时也借由对turtle功能的展示,厘清了Python的一些语法特点,以利于新手入门.但是短短几个例子,阐述得还是有限,这里再展开两个知识点,一方面对tu ...

  6. 如何用python画椭圆_怎么用python画椭圆?

    使用python画椭圆的方法: 首先使用两行代码引入Matplotlib扩展包:import matplotlib.pyplot as plt from matplotlib.patches impo ...

  7. opengl 画椭圆_如何画椭圆的共轭半径及其他......

    触碰标题下面一行中"邵勇老师"查看所有文章:触碰"数学教学研究", 关注本微信公众号(sx100sy).本公众号内容均由邵勇本人独创,欢迎转发,但未经许可不能转 ...

  8. python 画椭圆_一篇文章教会你使用SVG ellipse 画椭圆

    点击上方" 前端进阶学习交流 ",进行关注 回复"前端"即可获赠前端相关学习资料 今 日 鸡 汤 熊咆龙吟殷岩泉,栗深林兮惊层巅. SVG元素用于绘制椭圆.椭圆 ...

  9. html5画椭圆的完整代码,HTML5 Canvas中绘制椭圆的4种方法

    概述 HTML5中的Canvas并没有直接提供绘制椭圆的方法,下面是对几种绘制方法的总结.各种方法各有优缺,视情况选用.各方法的参数相同: 1.context为Canvas的2D绘图环境对象, 2.x ...

最新文章

  1. 使用机智云APP控制战舰V3 (转)
  2. 十、request.getSession( )、reqeust.getSession(false)和 request.getSession(true)
  3. MYSQL的索引类型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 区别与使用场合
  4. Win7点击文件夹右键可打开cmd控制台,并获取当前目录
  5. H5 video的使用
  6. CCNA学习笔记 基础知识回顾(1)
  7. mysql建表与oracle_oracle建表与MySQL建表区别
  8. Linux应用开发【第十四章】CAN编程应用开发
  9. 我经常和面试者聊的一个题目
  10. 图像质量评价 开源项目汇总
  11. TCP拥塞控制——慢开始与拥塞避免AIMD
  12. tar命令打包并压缩指定的文件夹并且排除指定的文件
  13. ROS讲座 关于ROS2和Gazebo C++ in Open Source Robotics
  14. Python爬取百思不得姐段子
  15. PIM SM RP控制原理与实验
  16. postMan中文修改
  17. Freetype学习笔记
  18. HashMap扩容全过程
  19. 关于Android ViewPager禁止滑动
  20. 我在赶集网的两个月 (完整版)

热门文章

  1. PHP编写投屏功能,win10如何投屏到电视
  2. git clone出现 fatal: unable to access ‘https://github.com/...‘resolve host: ds-git.gree.com的解决办法
  3. Android Studio连接驱动装不上应用程序无法正常启动(oxc000007b)
  4. [OpenGL] 几何着色器
  5. Php 股票系统,利用PHP命令行模式采集股票趋势信息
  6. Android 收银机Wifi 连接厨房厨单打印机
  7. 1+X 云计算平台运维与开发(初级)
  8. 串口的空闲中断+DMA接收(附F4代码)
  9. 冬色烂漫 纯情踏雪 论著名画家冯庆冰雪画作品
  10. vb透明控件窗体不透明函数