微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Pygame 中旋转图像时图像质量不佳

如何解决在 Pygame 中旋转图像时图像质量不佳

我的第一个 Pygame 程序,它是一个使用来自 python-obd 的 rpm 数据的虚拟转速计。我每次都通过原始图像进行旋转,但仍然会出现 0、90、180 以外角度的失真...等。我错过了什么吗? * 针图像围绕中心旋转,其中一半是透明的。

enter image description here

import pygame
from pygame.locals import *
import time
from buttonClass import *
import obd
obd.logger.setLevel(obd.logging.DEBUG)
connection = obd.Async("\\.\\COM3")
pygame.init()
screen = pygame.display.set_mode((800,480))
pygame.display.set_caption('Virtual Dash')

rpm = 0

def rpm_gauge():
    gauge_image = pygame.image.load(r"C:\Users\olinr\CS121\gaugecrop.jpg")
    rpm_gauge = pygame.transform.scale(gauge_image,(281,280))
    return rpm_gauge
def gauge_needle():
    needle_image = pygame.image.load(r"C:\Users\olinr\CS121\needtransp.png")
    needle = pygame.transform.scale(needle_image,(270,4))
    #needle.set_colorkey((0,0))
    return needle
# def rotate_needle(needle,angle):
#     rotated_needle = pygame.transform.rotate(needle,angle)
#     return rotated_needle

def get_rpm(r):
    global rpm
    if not r.is_null():
        rpm = int(r.value.magnitude)
def update_fps():
    fps = str(int(clock.get_fps()))
    fps_text = font.render(fps + " fps",1,pygame.Color("coral"))
    return fps_text

pivot = (340,336.5)
run = True
clock = pygame.time.Clock()
connection.watch(obd.commands.RPM,callback=get_rpm)
connection.start()
angle = 0
while run:
    screen.fill(black)
    gauge = rpm_gauge()
    angle = 36 * (rpm * -.001) + 90
    needle_rotated = pygame.transform.rotate(gauge_needle(),angle)
    screen.blit(gauge,(260,200))
    screen.blit(needle_rotated,(400 - int(needle_rotated.get_width() / 2),336 - 
    int(needle_rotated.get_height() / 2)))
    screen.blit(update_fps(),(0,350))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
    #clock.tick(120)
    #rpm += 70
    pygame.display.update()
    pygame.display.flip()

pygame.quit()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。