Photographie/Les premiers pas/La lumière

Photographier, c'est « écrire avec la lumière ». Ce que l'appareil enregistre de façon « mécanique » dépend bien évidemment du sujet mais aussi de la façon dont il est éclairé. L'image d'un même lieu peut prendre des aspects très différents selon de multiples facteurs : direction, intensité et couleur de la lumière qui l'éclaire, sans oublier le traitement chimique ou numérique permettant d'obtenir la photographie définitive.

Pygame/Tom's Pong
VERSION = "0.4"
try:
 import sys
 import random
 import math
 import os
 import getopt
 import pygame
 from socket import *
 from pygame.locals import *
except ImportError, err:
 print "Impossible de charger le module. %s" % (err)
 sys.exit(2)
def load_png(name):
 """Charge une image et retourne un objet image"""
 fullname = os.path.join('data', name)
 try:
 image = pygame.image.load(fullname)
 if image.get_alpha is None:
 image = image.convert()
 else:
 image = image.convert_alpha()
 except pygame.error, message:
 print "Impossible de charger l'image : ", fullname
 raise SystemExit, message
 return image, image.get_rect()
class Ball(pygame.sprite.Sprite):
 """Une balle qui se déplace sur lécran
 Retourne: objet ball
 Fonctions: update, calcnewpos
 Attributs: area, vector"""
 def __init__(self, (xy), vector):
 pygame.sprite.Sprite.__init__(self)
 self.image, self.rect = load_png('ball.png')
 screen = pygame.display.get_surface()
 self.area = screen.get_rect()
 self.vector = vector
 self.hit = 0
 def update(self):
 newpos = self.calcnewpos(self.rect,self.vector)
 self.rect = newpos
 (angle,z) = self.vector
 if not self.area.contains(newpos):
 tl = not self.area.collidepoint(newpos.topleft)
 tr = not self.area.collidepoint(newpos.topright)
 bl = not self.area.collidepoint(newpos.bottomleft)
 br = not self.area.collidepoint(newpos.bottomright)
 if tr and tl or (br and bl):
 angle = -angle
 if tl and bl:
 #self.offcourt()
 angle = math.pi - angle
 if tr and br:
 angle = math.pi - angle
 #self.offcourt()
 else:
 # Réduire les rectangles pour ne pas frapper la balle derrière les raquettes
 player1.rect.inflate(-3, -3)
 player2.rect.inflate(-3, -3)
 # Est-ce que la raquette et la balle entre en collision ?
 # Notez que je mets dans une règle à part qui définit self.hit à 1 quand ils entrent en collision
 # et à 0 à la prochaine itération. C'est pour stopper un comportement étrange de la balle
 # lorsqu'il trouve une collision *à l'intérieur* de la raquette, la balle s'inverse, et est
 # toujours à l'intérieur de la raquette et donc rebondit à l'intérieur.
 # De cette façon, la balle peut toujours s'échapper et rebondir correctement
 if self.rect.colliderect(player1.rect) == 1 and not self.hit:
 angle = math.pi - angle
 self.hit = not self.hit
 elif self.rect.colliderect(player2.rect) == 1 and not self.hit:
 angle = math.pi - angle
 self.hit = not self.hit
 elif self.hit:
 self.hit = not self.hit
 self.vector = (angle,z)
 def calcnewpos(self,rect,vector):
 (angle,z) = vector
 (dx,dy) = (z*math.cos(angle),z*math.sin(angle))
 return rect.move(dx,dy)
class Bat(pygame.sprite.Sprite):
 """Raquette mobile qui peut frapper la balle
 Retourne: objet bat
 Méthode: reinit, update, moveup, movedown
 Attributs: which, speed"""
 def __init__(self, side):
 pygame.sprite.Sprite.__init__(self)
 self.image, self.rect = load_png('bat.png')
 screen = pygame.display.get_surface()
 self.area = screen.get_rect()
 self.side = side
 self.speed = 10
 self.state = "still"
 self.reinit()
 def reinit(self):
 self.state = "still"
 self.movepos = [0,0]
 if self.side == "left":
 self.rect.midleft = self.area.midleft
 elif self.side == "right":
 self.rect.midright = self.area.midright
 def update(self):
 newpos = self.rect.move(self.movepos)
 if self.area.contains(newpos):
 self.rect = newpos
 pygame.event.pump()
 def moveup(self):
 self.movepos[1] = self.movepos[1] - (self.speed)
 self.state = "moveup"
 def movedown(self):
 self.movepos[1] = self.movepos[1] + (self.speed)
 self.state = "movedown"
def main():
 # Initialisation de la fenêtre d'affichage
 pygame.init()
 screen = pygame.display.set_mode((640, 480))
 pygame.display.set_caption('Basic Pong')
 # Remplissage de l'arrière-plan
 background = pygame.Surface(screen.get_size())
 background = background.convert()
 background.fill((0, 0, 0))
 # Initialisation des joueurs
 global player1
 global player2
 player1 = Bat("left")
 player2 = Bat("right")
 # Initialisation de la balle
 speed = 13
 rand = ((0.1 * (random.randint(5,8))))
 ball = Ball((0,0),(0.47,speed))
 # Initialisation des sprites
 playersprites = pygame.sprite.RenderPlain((player1, player2))
 ballsprite = pygame.sprite.RenderPlain(ball)
 # Blitter le tout dans la fenêtre
 screen.blit(background, (0, 0))
 pygame.display.flip()
 # Initialisation de l'horloge
 clock = pygame.time.Clock()
 # Boucle d'évènements
 while 1:
 # S'assurer que le jeu ne fonctionne pas à plus de 60 images par secondes
 clock.tick(60)
 for event in pygame.event.get():
 if event.type == QUIT:
 return
 elif event.type == KEYDOWN:
 if event.key == K_a:
 player1.moveup()
 if event.key == K_z:
 player1.movedown()
 if event.key == K_UP:
 player2.moveup()
 if event.key == K_DOWN:
 player2.movedown()
 elif event.type == KEYUP:
 if event.key == K_a or event.key == K_z:
 player1.movepos = [0,0]
 player1.state = "still"
 if event.key == K_UP or event.key == K_DOWN:
 player2.movepos = [0,0]
 player2.state = "still"
 screen.blit(background, ball.rect, ball.rect)
 screen.blit(background, player1.rect, player1.rect)
 screen.blit(background, player2.rect, player2.rect)
 ballsprite.update()
 playersprites.update()
 ballsprite.draw(screen)
 playersprites.draw(screen)
 pygame.display.flip()
if __name__ == '__main__': main()
Retour au tutoriel

Livre de cuisine/Boissons/Cocktails/Cris d’orgasmes

Le Cris d'orgasmes est un cocktail.
Livre de cuisine/Boissons/Liqueur de myrte

La liqueur de myrte, ou plus simplement myrte, est une liqueur, très populaire en Corse et en Sardaigne, obtenue par macération alcoolique de baies de myrte ou d'un mélange de baies et de feuilles. Dans l'acception courante du terme, la liqueur de myrte est le résultat de la macération de baies pigmentées mûres.
Recette.
Préparation.
Laver les baies après la récolte, laisser sécher quelques jours. Transférer les baies dans des récipients de verre foncé, recouvrir les baies d’alcool éthylique à 95° (Au maximum à la hauteur des baies).Laisser infuser 40 jours à la lumière du jour. Récupérer l'extrait alcoolique par égouttage et pressurage. Filtrer à l’aide de filtres en papier absorbant. Préparer un sirop en faisant fondre à chaud le sucre dans l’eau. Réalisé un essai préliminaire avant d'ajouter tout le sirop a froid. Mettre en bouteilles.
Conserver au minimum 40 jours avant consommation.

Livre de cuisine/Boissons/Limonade au citron

__NOEDITSECTION__
La Limonade au citron est une boisson fraîche et classique.

Livre de cuisine/Boissons/Limonade recette américaine

__NOEDITSECTION__
La particularité de cette boisson est qu’elle n’est pas gazeuse, malgré son appellation de limonade elle est plus considérée comme une limeade (orangeade).