【Pygame手册03/20】用于绘制形状的 pygame 模块

目录

  • 一、说明
  • 二、画图函数
    • 2.1 接口draw下的函数
    • 2.2 pygame.draw.rect()
    • 2.3 pygame.draw.polygon()
    • 2.4 pygame.draw.circle()
    • 2.5 pygame.draw.ellipse()
    • 2.6 pygame.draw.arc()
    • 2.7 pygame.draw.line ()
    • 2.8 pygame.draw.lines()
    • 2.9 pygame.draw.aaline()
    • 2.10 pygame.draw.aalines()
  • 三、绘图模块示例

一、说明

   本文对pygame的接口draw进行系统介绍。绘制几何图,不同于图像显示,它是严格按照几何坐标进行。本文对九个相关函数进行介绍。方便开发人员查阅。

二、画图函数

2.1 接口draw下的函数

   draw用于绘制形状的 pygame 模块。绘出的多数是几何形状。如下表所示:

函数功能
pygame.draw.rect绘制矩形
pygame.draw.polygon绘制多边形
pygame.draw.circle画一个圆
pygame.draw.ellipse绘制椭圆
pygame.draw.arc绘制椭圆弧
pygame.draw.line画一条直线
pygame.draw.lines绘制多个连续的直线段
pygame.draw.aaline绘制一条抗锯齿直线
pygame.draw.aalines绘制多个连续的直线抗锯齿线段

   在曲面上绘制几个简单的形状。这些函数将适用于 渲染为任何格式的图面。

   大多数函数都采用 width 参数来表示笔画的大小 (厚度)围绕形状的边缘。如果传递宽度为 0 的形状 将被填充(实心)。

   所有绘图功能都遵循曲面的裁剪区域,并将 被限制在那个区域。这些函数返回一个矩形,表示 已更改像素的边界区域。此边界矩形是“最小值” 包围受影响区域的边界框。

   所有绘图函数都接受一个 color 参数,该参数可以是 以下格式:

   一个pygame.Color用于颜色表示的 pygame 对象对象

  • 颜色表示对象的 pygame.Colorpygame 对象
  • an (RGB) triplet (tuple/list)
  • an (RGBA) quadruplet (tuple/list)
  • 已映射到表面像素格式的整数值(请参阅 pygame.Surface.map_rgb()将颜色对象转换为颜色值;反之 pygame.Surface.unmap_rgb()将映射的整数颜色值转换为颜色对象)

   颜色的 alpha 值将直接写入曲面(如果 表面包含像素 alpha),但绘制函数不会绘制 透明。

   这些功能会暂时锁定它们正在操作的表面。多 通过锁定和解锁曲面,可以加快顺序绘图调用 绘制调用周围的对象(请参阅pygame.Surface.lock()锁定 Surface 内存以进行像素访问和pygame.Surface.unlock()从像素访问中解锁 Surface 内存).

   注意 请参阅pygame.gfxdraw用于绘制形状的 pygame 模块用于替代绘制方法的模块。pygame.draw中。

2.2 pygame.draw.rect()

  • 绘制矩形
    rect(surface, color, rect) -> Rect
    rect(surface, color, rect, width=0, border_radius=0, border_top_left_radius=-1, border_top_right_radius=-1, border_bottom_left_radius=-1, border_bottom_right_radius=-1) -> Rect

  • 在给定Surface上绘制一个矩形。

参数:
surface (Surface) 要绘制的曲面
color (Color or int or tuple(int, int, int, [int])) – 绘制颜色,如果使用 元(RGB[A])
rect (Rect) – 要绘制的矩形、位置和尺寸
width (int) – (可选)用于线条粗细或指示 矩形将被填充(不要与宽度值混淆 的参数)rect

if ,(默认)填充矩形width == 0
if ,用于线条粗细width > 0
if ,则不会绘制任何内容width < 0

   在 pygame 2.1.1 中更改: 现在,绘制具有宽度的矩形时,可以在 rect 的区域,而不是使用对 draw.lines() 的内部调用, 其中一半的宽度溢出到矩形区域之外。
圆角矩形
   border_radius (int) – (可选)用于绘制带有圆角的矩形。 支持的范围为 [0, min(height, width) / 2],其中 0 表示矩形 没有圆角。
   border_top_left_radius (int) – (可选)用于设置左上角的值 边境。如果未设置此值,它将使用 border_radius 值。
   border_top_right_radius (int) – (可选)用于设置右上角的值 边境。如果未设置此值,它将使用 border_radius 值。
   border_bottom_left_radius (int) – (可选)用于设置左下角的值 边境。如果未设置此值,它将使用 border_radius 值。
   border_bottom_right_radius (int) --(可选)用于设置右下角的值 边境。如果未设置此值,它将使用 border_radius 值。

   如果它将绘制没有圆角的矩形border_radius < 1
   如果 Border radii 中的任何一个具有 Value,它将使用 border_radius 的值< 0
   如果矩形同一侧的半径之和大于矩形大小,则半径将缩放

返回
   一个边界已更改像素的矩形,如果未绘制任何像素 bounding rect 的位置将是给定参数的位置,其宽度和高度将为 0。

返回类型:Rect

   注意 这pygame.Surface.fill()用纯色填充 Surface方法同样适用于绘图填充矩形,并且可以在某些平台上进行硬件加速。

2.3 pygame.draw.polygon()

  •    绘制多边形
    多边形(表面、颜色、点)->矩形
    polygon(surface, color, points, width=0) -> rect
    在给定曲面上绘制多边形。

  • 参数
    surface (Surface) – 要绘制的曲面

  1. color (Color or int or tuple(int, int, int, [int])) – 绘制颜色,如果使用 元(RGB[A])

  2. points (tuple(coordinate) or list(coordinate)) – 由 3 个或更多个 (x, y) 坐标组成的序列,这些坐标组成 多边形的顶点,序列中的每个坐标必须是 元组/列表/pygame.math.Vector2二维向量2 个整数/浮点数, 例如:[(x1, y1), (x2, y2), (x3, y3)]

  3. width (int) – (可选)用于线条粗细或指示 要填充的多边形

  • 如果 width == 0,(默认)填充多边形
  • 如果width> 0,则用于线条粗细
  • 如果width< 0,则不会绘制任何内容

   注意:使用值时,边线将增长 在多边形的原始边界之外。有关更多详细信息 边缘线的粗细如何增长,请参阅注释 的width> 1widthpygame.draw.line()画一条直线功能。

返回
   如果未绘制任何像素 bounding rect 的位置将是参数中第一个点的位置(浮点值将被截断)及其宽度和 高度将为 0points

返回类型: Rect

错误给出

  • ValueError – 如果(必须至少有 3 个点)len(points) < 3
  • TypeError – 如果不是序列或不是序列 包含数字对pointspoints

注意:对于 aapolygon,请使用 aalines() 且closed=True。

2.4 pygame.draw.circle()

   画一个圆

  • circle(surface, color, center, radius) -> Rect

  • circle(surface, color, center, radius, width=0, draw_top_right=None, draw_top_left=None, draw_bottom_left=None, draw_bottom_right=None) -> Rect

   在给定曲面上绘制一个圆。

   参数

  • surface (Surface) – 要绘制的曲面
  • color (Color or int or tuple(int, int, int, [int])) – 绘制颜色,如果使用 元(RGB[A])
  • center (tuple(int or float, int or float) or list(int or float, int or float) or Vector2(int or float, int or float, intor float)) – 圆的中心点,作为 2 个整数/浮点数的序列, 例如:(x, y)
  • radius (int 或 float) – 圆的半径,从参数测量, 如果小于 1,则不会绘制任何内容centerradius
  • width (int) --(可选)用于线条粗细或指示 这个圆圈要被填满

if ,width == 0 (默认)填充圆圈
if ,width > 0 用于线条粗细
if ,width < 0 则不会绘制任何内容
注意 width > 1,边线只会向外增长 。

  • draw_top_right (bool) – (可选)如果设置为 True,则为右上角 的圆圈将被绘制
  • draw_top_left (bool) – (可选)如果设置为 True,则为左上角 的圆圈将被绘制
  • draw_bottom_left (bool) – (可选)如果设置为 True,则为左下角 的圆圈将被绘制
  • draw_bottom_right(bool) --(可选)如果设置为 True,则右下角 的圆圈将被绘制

   如果任何draw_circle_part为 True,则它将绘制所有具有 True 的圆部分value,否则将绘制整个圆圈。

返回: 一个边界已更改像素的矩形,如果未绘制任何像素 bounding rect 的位置将是参数值 (float 值将被截断),其宽度和高度将为 0center

返回类型:Rect

出错提示:

  • TypeError – if center is not a sequence of two numbers
  • TypeError – if radius is not a number

   在 pygame 2.0.0 中更改: 添加了对关键字参数的支持。 当半径为 0(坐标处的像素)时,不绘制任何内容 用于在半径等于 0 时绘制。 参数接受 Floats 和 Vector2。 改进了绘图算法,使其看起来更像一个圆。centercenter

   在 pygame 2.0.0.dev8 中更改: 添加了对绘制圆象限的支持。

2.5 pygame.draw.ellipse()

   绘制椭圆
ellipse(surface, color, rect) -> Rect
ellipse(surface, color, rect, width=0) -> Rect

   在给定曲面上绘制椭圆。

参数

  • surface (Surface) – 要绘制的曲面
  • color (Color or int or tuple(int, int, int, [int])) – 绘制颜色,如果使用 元(RGB[A])
  • rect (Rect) – 表示 椭圆,椭圆将在矩形内居中并有界 由它
  • wodth (int) – (可选)用于线条粗细或指示 椭圆将被填充(不要与宽度值混淆 的参数)rect

if width == 0, (default) 填充 ellipse
if width > 0, 用所给线画出
if width < 0, 无椭圆被画出

   注意 使用值时,边线只会增长 从参数的原始边界向内。
返回
   一个边界已更改像素的矩形,如果未绘制任何像素 bounding rect 的位置将是给定参数的位置,其宽度和高度将为0的rect

返回类型 Rect
在 pygame 2.0.0 中更改: 添加了对关键字参数的支持。

2.6 pygame.draw.arc()

绘制椭圆弧
arc(surface, color, rect, start_angle, stop_angle) -> rect
arc(surface, color, rect, start_angle, stop_angle, width=1) -> rect

在给定曲面上绘制椭圆弧。

   两个角度参数以弧度给出,表示开始和停止 弧的位置。弧线沿逆时针方向绘制 的 .start_anglestop_angle

  • 参数
    surface (Surface) – 要绘制的表面
    color (Color or int or tuple(int, int, int, [int])) – 绘制颜色,如果使用 元(RGB[A])
    rect (Rect) – 表示 弧将基于的椭圆,椭圆将居中 矩形内部
    start_angle (float) – 弧弧的起始角度
    stop_angle(浮点) --圆弧的停止角 弧度

  • 如果 ,start_angle < stop_angle则将圆弧绘制在 逆时针方向从start_angle到stop_angle;

  • 如果 ,如果 start_angle > stop_angle,tau (tau == 2 * pi) 将被添加到 stop_angle,如果生成的停止角度值大于 start_angle,则适用上述 start_angle < stop_angle 情况,否则不会绘制任何内容。

  • 如果,start_angle == stop_angle ,则不会绘制任何内容

宽度 (int) --(可选)用于线条粗细(不要混淆) 替换为参数的宽度值)rect

if width == 0,则不会绘制任何内容
if width > 0,(默认值为 1)用于线条粗细
if width < 0,与 width == 0 同
注意 使用width值时,边线只会增长 从参数的原始边界向内。
返回一个边界已更改像素的矩形,如果未绘制任何像素 bounding rect 的位置将是给定参数的位置,其宽度和高度将为 0rect

返回类型:rect

在 pygame 2.0.0 中更改: 添加了对关键字参数的支持。

2.7 pygame.draw.line ()

   画一条直线
line(surface, color, start_pos, end_pos) -> rect
line(surface, color, start_pos, end_pos, width=1) -> rect

   在给定曲面上绘制一条直线。没有端盖。对于厚 线的两端是方形的。

参数

  • surface (Surface) – 要绘制的面
  • color (Color or int or tuple(int, int, int, [int])) – 绘制颜色,如果使用 元(RGB[A])
  • start_pos (tuple(int or float, int or float) or list(int or float, int or float) or Vector2(int or float, int or float, int or float)) – 线的起始位置,(x, y)
  • end_pos (tuple(int or float, int or float) or list(int or float, int or float) or Vector2(int or float, int or float, intor float)) – 线的结束位置, (x, y)
  • width (int) --(可选)用于线粗

if 宽度 >= 1,则用于线条粗细(默认值为 1)
if 宽度< 1,则不会绘制任何内容

注意 使用值时,行将按如下方式增长。
对于奇数值,每条线的粗细随width原来的线在中间。
对于偶数值,每条线的粗细随 width 原始线偏离中心(因为没有确切的 绘制中心线)。因此,斜率为 < 1 的线 (水平)将在 原始线(在 y 方向上)。斜率 >= 1 的线 (垂直)的右侧将多 1 个粗细的像素 原始线(在 x 方向上)。

返回
一个边界已更改像素的矩形,如果未绘制任何像素 bounding rect 的位置将是参数值 (float 值将被截断),其宽度和高度将为 0start_pos

返回类型:矩形

错误举出
TypeError – 如果 or 不是 两个数字start_posend_pos
在 pygame 2.0.0 中更改: 添加了对关键字参数的支持。

2.8 pygame.draw.lines()

   绘制多个连续的直线段
lines(surface, color, closed, points) -> Rect
lines(surface, color, closed, points, width=1) -> Rect

   在给定曲面上绘制一系列连续的直线。有 无端盖或斜接接头。对于粗线,两端是方形的。 用尖角绘制粗线可能会产生不良效果。

参数
surface (Surface) – 要绘制的曲面
color (Color or int or tuple(int, int, int, [int])) – 绘制颜色,如果使用 元(RGB[A])
closed (bool) – 如果在 序列中的第一个点和最后一个点Truepoints

points (tuple(coordinate) or list(coordinate)) --点(元组(坐标)或列表(坐标)) - 2个或更多(x,y)坐标的序列,其中序列中的每个坐标必须是元组/列表/pygame.math.Vector2a的二维向量2 个整数/浮点数和相邻坐标将通过线段连接,例如对于点 [(x1, y1), (x2, y2), (x3, y3)] 将从 (x1, y1) 到 (x2, y2) 以及从 (x2, y2) 到 (x3) 绘制一条线段, y3),此外,如果闭合参数为 True,则会从 (x3, y3) 到 (x1, y1) 绘制另一条线段
width(int) – (可选)用于线粗

如果 width >= 1,则用于线条粗细(默认值为 1)
如果 width< 1,则不会绘制任何内容

**注意:**使用值时,请参阅注释 的,详细了解粗线如何生长。
返回:一个包围已更改像素的矩形,如果未绘制任何内容,则边界矩形的位置将是点参数中第一个点的位置(浮点值将被截断),其宽度和高度将为 0

返回类型:rect

错误举出:
if len(points) < 2 (必须至少有 2 个点)
TypeError – 如果点不是序列,或点不包含数字对
在 pygame 2.0.0 中更改: 添加了对关键字参数的支持。

2.9 pygame.draw.aaline()

   绘制一条抗锯齿直线
aaline(surface, color, start_pos, end_pos) -> Rect
aaline(surface, color, start_pos, end_pos, blend=1) -> Rect

   在给定曲面上绘制一条抗锯齿的直线。

   线的粗细为 1 像素,端点的高度和 每个像素的宽度为一个像素。

线及其端点的绘制方式:

  • 如果两个端点相等,则仅绘制单个像素(之后 四舍五入浮点数到最接近的整数)。
    否则,如果线不陡峭(即如果沿 x 轴的长度 大于沿 y 轴的高度):

  • 对于每个终结点:如果 ,端点的 x 坐标是整数 find 哪些像素将被它覆盖并绘制它们。x

否则:用整数计算最近点的位置 对于其 x 坐标,当将直线延伸到 端点。找出将覆盖哪些像素以及到那时覆盖多少像素。

如果端点是左边的端点,则将覆盖率乘以 (1 - 的 ) 的小数部分。x

否则,将覆盖率乘以 的小数部分。x

然后绘制这些像素。

例如:
该行的左端点将 覆盖 70% 的像素和 30% 的像素,而右侧的像素将覆盖 100% 的像素 像素。((1, 1.3), (5, 3))(1, 1)(1, 2)(5, 3)
线的左端点将覆盖 56%(即 0.8 * 70%)的像素和 24%(即 0.8 * 30%)的像素,而 正确的一个将覆盖 42%(即 0.6 * 70%) 像素和 18%(即 0.6 * 30%)的像素,而右边((1.2, 1.4), (4.6, 3.1))(1, 1)(1, 2)(5, 3)(5, 4)
然后对于端点之间的每个点,沿着这条线,其 x 坐标是一个整数:
找出将覆盖哪些像素以及该点覆盖的像素数量,以及 画出来。

例如:
沿线的点将是 和 将覆盖 50% 的像素、50% 的像素和 100% 的像素。((1, 1), (4, 2.5))(2, 1.5)(3, 2)(2, 1)(2, 2)(3, 2)
沿线的点将 be(覆盖 20% 的像素和 80% 的像素),(覆盖 70% 的 像素和 30% 的像素 ) 和 (覆盖 20% 的像素和 80% 的 像素((1.2, 1.4), (4.6, 3.1))(2, 1.8)(2, 1)(2, 2)(3, 2.3)(3, 2)(3, 3)(4, 2.8)(2, 1)(2, 2))
否则,对陡峭线执行与非陡线相同的操作,但 沿 y 轴而不是 x 轴(使用 instead of , 顶部而不是左侧,底部而不是右侧)。yx

注意 关于坐标的浮点值,一个具有坐标的点 由两个整数组成被认为是正中 所述像素(因此具有 1 像素的高度和宽度 完全覆盖它),而一个点与坐标,其中一(或两者) 的数字具有非零小数部分将部分覆盖 两个(如果两个数字都有小数部分,则为四个)相邻像素,例如,该点覆盖了 60% 的像素和 40% 的 像素 。
参数
surface (Surface) – 要绘制的曲面
color (Color or int or tuple(int, int, int, [int])) – 绘制颜色,如果使用 元(RGB[A])
start_pos (tuple(int or float, int or float) or list(int or float, int or float) or Vector2(int or float, int or float, int or float)) – 线的起始位置,(x, y)
end_pos (tuple(int or float, int or float) or list(int or float, int or float) or Vector2(int or float, int or float, intor float)) – 线的结束位置, (x, y)
blend (int) – (可选) (已弃用) 如果非零 (默认) 则该行将被混合 替换为 Surface 的现有像素阴影,否则将覆盖它们

返回
一个边界已更改像素的矩形,如果未绘制任何像素 bounding rect 的位置将是参数值 (float 值将被截断),其宽度和高度将为 0start_pos

返回类型:“矩形

错误举出:
TypeError – 如果 start_pos 或 end_pos不是 两个数字。
在 pygame 2.0.0 中更改: 添加了对关键字参数的支持。

2.10 pygame.draw.aalines()

绘制多个连续的直线抗锯齿线段
aalines(surface, color, closed, points) -> rect
aalines(surface, color, closed, points, blend=1) -> rect

在给定的 表面。

参数
surface (Surface) – 要绘制的曲面
color (Color or int or tuple(int, int, int, [int])) – 绘制颜色,如果使用 元(RGB[A])
closed (bool) – 如果在 序列中的第一个点和最后一个点Truepoints
points (tuple(coordinate) or list(coordinate)) – 点(元组(坐标)或列表(坐标)) - 2个或更多(x,y)坐标的序列,其中序列中的每个坐标必须是元组/列表/pygame.math.Vector2a的二维向量2 个整数/浮点数和相邻坐标将通过线段连接,例如对于点 [(x1, y1), (x2, y2), (x3, y3)] 将从 (x1, y1) 到 (x2, y2) 以及从 (x2, y2) 到 (x3) 绘制一条线段, y3),此外,如果闭合参数为 True,则会从 (x3, y3) 到 (x1, y1) 绘制另一条线段

blend (int) – (可选) (已弃用) 如果非零 (默认) 每行将被混合 替换为表面的现有像素阴影,否则像素将 覆盖

返回一个边界已更改像素的矩形,如果未绘制任何像素 bounding rect 的位置将是参数中第一个点的位置(浮点值将被截断)及其宽度和 高度将为 0points

返回类型 rect

错误举出:
ValueError – 如果len(points) < 2(必须至少有 2 个点)
TypeError – 如果不是序列points或points不是序列 包含数字对
在 pygame 2.0.0 中更改: 添加了对关键字参数的支持。

三、绘图模块示例

   draw 模块的示例代码。

import pygame
from math import pi# Initialize pygame
pygame.init()# Set the height and width of the screen
size = [400, 300]
screen = pygame.display.set_mode(size)pygame.display.set_caption("Example code for the draw module")# Loop until the user clicks the close button.
done = False
clock = pygame.time.Clock()while not done:# This limits the while loop to a max of 60 times per second.# Leave this out and we will use all CPU we can.clock.tick(60)for event in pygame.event.get():  # User did somethingif event.type == pygame.QUIT:  # If user clicked closedone = True  # Flag that we are done so we exit this loop# Clear the screen and set the screen backgroundscreen.fill("white")# Draw on the screen a green line from (0, 0) to (50, 30)# 5 pixels wide. Uses (r, g, b) color - medium sea green.pygame.draw.line(screen, (60, 179, 113), [0, 0], [50, 30], 5)# Draw on the screen a green line from (0, 50) to (50, 80)# Because it is an antialiased line, it is 1 pixel wide.# Uses (r, g, b) color - medium sea green.pygame.draw.aaline(screen, (60, 179, 113), [0, 50], [50, 80], True)# Draw on the screen 3 black lines, each 5 pixels wide.# The 'False' means the first and last points are not connected.pygame.draw.lines(screen, "black", False, [[0, 80], [50, 90], [200, 80], [220, 30]], 5)# Draw a rectangle outlinepygame.draw.rect(screen, "black", [75, 10, 50, 20], 2)# Draw a solid rectangle. Same color as "black" above, specified in a new waypygame.draw.rect(screen, (0, 0, 0), [150, 10, 50, 20])# Draw a rectangle with rounded cornerspygame.draw.rect(screen, "green", [115, 210, 70, 40], 10, border_radius=15)pygame.draw.rect(screen,"red",[135, 260, 50, 30],0,border_radius=10,border_top_left_radius=0,border_bottom_right_radius=15,)# Draw an ellipse outline, using a rectangle as the outside boundariespygame.draw.ellipse(screen, "red", [225, 10, 50, 20], 2)# Draw an solid ellipse, using a rectangle as the outside boundariespygame.draw.ellipse(screen, "red", [300, 10, 50, 20])# This draws a triangle using the polygon commandpygame.draw.polygon(screen, "black", [[100, 100], [0, 200], [200, 200]], 5)# Draw an arc as part of an ellipse.# Use radians to determine what angle to draw.pygame.draw.arc(screen, "black", [210, 75, 150, 125], 0, pi / 2, 2)pygame.draw.arc(screen, "green", [210, 75, 150, 125], pi / 2, pi, 2)pygame.draw.arc(screen, "blue", [210, 75, 150, 125], pi, 3 * pi / 2, 2)pygame.draw.arc(screen, "red", [210, 75, 150, 125], 3 * pi / 2, 2 * pi, 2)# Draw a circlepygame.draw.circle(screen, "blue", [60, 250], 40)# Draw only one circle quadrantpygame.draw.circle(screen, "blue", [250, 250], 40, 0, draw_top_right=True)pygame.draw.circle(screen, "red", [250, 250], 40, 30, draw_top_left=True)pygame.draw.circle(screen, "green", [250, 250], 40, 20, draw_bottom_left=True)pygame.draw.circle(screen, "black", [250, 250], 40, 10, draw_bottom_right=True)# Go ahead and update the screen with what we've drawn.# This MUST happen after all the other drawing commands.pygame.display.flip()# Be IDLE friendly
pygame.quit()

   绘制程序输出结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/688808.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

arcgispro删除影像黑色背景值

1、打开影像&#xff0c;如下&#xff1a; 2、打开栅格计算器&#xff0c;在 “视图”--“地理处理”中&#xff0c;点击&#xff0c;如下&#xff1a; 3、语句如下&#xff1a; SetNull("setnul_rast1"0,"setnul_rast1") “setnul_rast1”表示要处理的栅…

Java实现数据结构哈希表

哈希表 概述 给美分数据分配一个编号,放入表格(数组) 建立编号与表格索引的关系,将来就可以通过编号快速查找数据 理想情况编号当唯一,数组能容纳所有数据现实是不能说为了容纳所有数据造一个超大数组,编号也可能重复 解决 有限长度的数组,以[拉链]方式存储数据允许编号适…

【IO流】IOException IO流异常

IOException IO流异常 1. 概述2. try...catch异常处理2.1 基础做法2.2 JDK7方案2.3 JDK9方案 3. 注意事项 异常 概括 1. 概述 IOException&#xff08;Input/Output Exception&#xff0c;输入/输出异常&#xff09;是 Java 编程中常见的异常类型之一。它是 java.io 包中定义的…

48 slab 的实现

前言 这里说的是 内核中分配小对象的一种内存分配方式 slab 呵呵 经典程度不必多说了, 内核使用的大多数数据结构 基本上是基于 slab 进行内存分配的 这里 我们来看一下 slab 如何分配对象 几个分配层级, c->free_list, c->page, c->partial, new_slab 1. 先…

查看 PyCharm 代码文件目录位置

查看 PyCharm 代码文件目录位置 1. Show in Files2. Copy PathReferences 1. Show in Files right click -> Show in Files / Show in Explorer 即可打开目录 2. Copy Path right click -> Copy Path 即可复制目录或文件路径 References [1] Yongqiang Cheng, http…

通过Linux终端搭建基于HTTP隧道的文件传输系统

嘿&#xff0c;Linux小侠们&#xff0c;准备好挑战一项酷炫的任务了吗&#xff1f;今天我们要一起通过Linux终端搭建一个基于HTTP隧道的文件传输系统&#xff0c;让我们的文件在网络的海洋中畅游无阻&#xff01; 在开始之前&#xff0c;让我们先来想象一下这个场景&#xff1…

自建AWS S3存储服务

unsetunset前言unsetunset AWS S3&#xff08;Amazon S3&#xff0c;全名为亚马逊简易存储服务&#xff09;&#xff0c;是亚马逊公司利用其亚马逊网络服务系统所提供的网络在线存储服务。我常用的很多SaaS服务中提供的文件存储功能&#xff0c;底层也都是AWS S3&#xff0c;比…

线代:认识行列式、矩阵和向量

本文主要参考的视频教程如下&#xff1a; 8小时学完线代【中国大学MOOC*小元老师】线性代数速学_哔哩哔哩_bilibili 另外这个视频可以作为补充&#xff1a; 【考研数学 线性代数 基础课】—全集_哔哩哔哩_bilibili 行列式的概念和定义 一般会由方程组来引出行列式 比如一个二阶…

【Python】测量WAV文件播放时长

问题 windows播放WAV音频文件&#xff0c;一般使用API函数&#xff0c;如PlaySound。实际使用发现&#xff0c;从调用PlaySound到实际开始播放存在200ms以上的延时&#xff0c;在游戏编程中音效实时性是个需要解决的问题。 本文主要讨论&#xff0c;windows播放WAV文件的衍生…

后端开发怎么学?

后端开发怎么学&#xff1f; 后端开发可以简单地理解为与前端开发相对应的开发方向。前端开发主要负责构建用户界面、维护用户体验等方面的工作&#xff0c;而后端开发则主要负责处理数据、逻辑和算法等方面的工作。后端开发旨在为前端应用程序提供支持&#xff0c;以帮助实现可…

微信小程序之开发会议OA项目

目录 前言 本篇目标 首页 会议 投票 个人中心 会议OA项目-首页 配置 tabbar mock工具 page swiper 会议信息 会议OA项目-会议 自定义tabs组件 会议管理 会议OA项目-投票 会议OA项目-个人中心 前言 文章含源码资源&#xff0c;投票及个人中心详细自行查看…

【开源】SpringBoot框架开发服装店库存管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 角色管理模块2.3 服装档案模块2.4 服装入库模块2.5 服装出库模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 角色表3.2.2 服装档案表3.2.3 服装入库表3.2.4 服装出库表 四、系统展示五、核心代码5.…

VTK Python PyQt 监听键盘 控制 Actor 移动 变色

KeyPressInteractorStyle 在vtk 中有时我们需要监听 键盘或鼠标做一些事&#xff1b; 1. 创建 Actor&#xff1b; Sphere vtk.vtkSphereSource() Sphere.SetRadius(10)mapper vtk.vtkPolyDataMapper() mapper.SetInputConnection(Sphere.GetOutputPort()) actor vtk.vtkAc…

立创EDA专业版快速使用和一些快捷键

立创EDA专业版 介绍原理图PCB快捷键原理图PCB 介绍 器件 符号 封装 3D模型 属性 仅支持放置器件在原理图或PCB 一个Board(板&#xff09;只能有一个原理图和PCB&#xff0c;一个原理图可以有多页 原理图 网络标签 是给连接线命名 新建图页 如果一个图页上画不下&#…

第4讲 小程序首页实现

首页 create.vue <template><view class"vote_type"><view class"vote_tip_wrap"><text class"type_tip">请选择投票类型</text><!-- <text class"share">&#xe739;分享给朋友</text&g…

STM32中断定时器的使用

使用systimer来产生较为精确的定时&#xff0c;之前使用for循环来产生。 用示例工程时产生错误&#xff0c;原因是调用F103的3种容量器件&#xff0c;需要更换S汇编头函数。 另外在工程设置中&#xff0c;需要把HD设置为MD&#xff0c;重新编译即可成功。

二叉树基础总结

目录 树的定义&#xff1a; 深度和高度&#xff1a; 二叉树 由来 二叉树种类&#xff1a; 满二叉树&#xff1a; 完全二叉树&#xff1a; 严格二叉树&#xff08;Strict Binary Tree&#xff09;&#xff1a; 平衡二叉树&#xff08;Balanced Binary Tree&#xff09;…

DoRA(权重分解低秩适应):一种新颖的模型微调方法

来自&#xff1a;小互 DoRA&#xff08;权重分解低秩适应&#xff09;&#xff1a;一种新颖的模型微调方法 DoRA在LoRA的基础上进一步发展&#xff0c;通过将预训练权重分解为“幅度”和“方向”两个部分进行微调。 这种权重分解方法允许DoRA更精细地控制模型的学习过程&…

基于函数计算AIGC生成图应用

目录 基于函数计算部署AIGC应用的主要步骤 创建Stable Diffusion模型的应用 访问应用实现文字生图 函数的查看与管理 基于函数计算部署AIGC应用的主要步骤 用函数计算实现AIGC只要简单的三步&#xff0c;分别是创建应用、运行应用及查看管理。 创建Stable Diffusion模型的应…

【大厂AI课学习笔记】【2.2机器学习开发任务实例】(3)数据准备和数据预处理

项目开始&#xff0c;首先要进行数据准备和数据预处理。 数据准备的核心是找到这些数据&#xff0c;观察数据的问题。 数据预处理就是去掉脏数据。 缺失值的处理&#xff0c;格式转换等。 延伸学习&#xff1a; 在人工智能&#xff08;AI&#xff09;的众多工作流程中&#…