我很擅长使用pygame。我希望在我的树莓派上制作一个基本的明星跟踪程序。
到目前为止,我已经使用pygame编写了一个代码,通过我的相机镜头在夜空和星星的屏幕上显示网络摄像头。我创建了一个由鼠标控制的可移动目标精灵。
我想知道的是如何使用可移动目标选择一颗恒星(或者可能只是恒星所在的屏幕区域),然后让程序检测到恒星运动的时间是5像素
我正在考虑比较屏幕的两个部分或类似的东西,这是可能的。 (顺便说一句,我在屏幕上暂时创建了一些虚拟星星,只是为了测试,这样我的相机在测试时不必总是指向星星。)。无论如何,感谢任何帮助。到目前为止,我已经在我的程序下面包含了一些内容。[python]
import pygame
import sys
from pygame.locals import *
pygame.init
import pygame.camera
pygame.font.init()
import time
import os
import RPi.GPIO as GPIO
import datetime
import time
from time import sleep
#setup GPIO pins
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(22,GPIO.OUT)
#set initial state of GPIO
GPIO.output(22,0)
# set simple names for colours instead of numbers
white=(255,255,255)
black=(0,0,0)
red=(255,0,0)
green=(0,255,0)
blue=(0,0,255)
yellow=(255,255,0)
cyan=(0,255,255)
purple=(255,0,255)
pygame.init()
pygame.camera.init()
screen = pygame.display.set_mode((640,480))
pygame.display.set_caption('WEB CAM STAR VIEWER')
cam = pygame.camera.Camera("/dev/video0",(640,480))
cam.start()
mysprite=pygame.image.load('/home/pi/Desktop/adder_guider/target.png')
myspritex=10
myspritey=10
while True:
image = cam.get_image()
screen.blit(image,(0,0))
pygame.draw.circle(screen, white, (50,50),5,5) # circle (centre point), radius, width
pygame.draw.circle(screen, white, (90,150),5,5) # circle (centre point), radius, width
pygame.draw.circle(screen, white, (180,250),5,5) # circle (centre point), radius, width
pygame.draw.circle(screen, white, (250,350),5,5) # circle (centre point), radius, width
pygame.draw.circle(screen, white, (390,200),5,5) # circle (centre point), radius, width
pygame.draw.circle(screen, white, (450,209),5,5) # circle (centre point), radius, width
pygame.display.update()
Mouse_x, Mouse_y = pygame.mouse.get_pos()
screen.blit(mysprite,(Mouse_x-78,Mouse_y-78))
pygame.display.update()
colour=screen.get_at((Mouse_x,Mouse_y))
print "The colour is ", colour
#check for white
if colour ==(255,255,255,255): #check what colour a pixel is and do something
print "the colour is white"
GPIO.output(22,1)
time.sleep(.1)
GPIO.output(22,0)
for event in pygame.event.get():#check for quit
if event.type == pygame.QUIT:
sys.exit()