IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

Trigo tracer des rayons aux angles aléaoires


Sujet :

Calcul scientifique Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 39
    Points
    39
    Par défaut Trigo tracer des rayons aux angles aléaoires
    Bonjour,
    j'ai un souci pour tracer les rayons d'un cercle : le premier point sur le centre ne pose pas de probleme, le second n'atteint pas le cercle, ou le dépasse.
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    #!/usr/bin/env python3
    #-*- coding: utf-8 -*-
     
    import pygame
    from pygame.locals import *
    import time
    import random
    import math
     
    pygame.init()
    fenetre = pygame.display.set_mode((1800, 1000))
     
    BLACK = (  0,   0,   0)
    WHITE = (255, 255, 255)
    RED   = (255,   0,   0)
    GREEN = (  0, 255,   0)
    BLUE  = (  0,   0, 255)
     
     
    couleur_cercle = WHITE
    centreX = 900
    centreY = 500
    rayon = 500
    epaisseur = 4
     
    cadran = pygame.draw.circle(fenetre, couleur_cercle, (centreX,centreY),rayon, epaisseur)
     
    pi = math.pi
    alpha  = random.uniform(0, 6.28) # 2 * pi arrondi
     
    crazy = -1 # coefficient : le sens des axes de pygame est different des axes O-i-j en math
     
    if alpha > 0 and alpha < pi:
        if alpha < (0.5*pi):
            bx = math.cos(alpha)
            by = math.sin(alpha)
        else:
            bx = -math.cos(alpha)
            by = math.sin(alpha)    
    elif alpha > pi and alpha < (1.5*pi):
        bx = -math.cos(alpha)
        by = -math.sin(alpha)
    else:
        bx = math.cos(alpha)
        by = -math.sin(alpha)
     
    if alpha > 0 and alpha < pi:
        BX = bx * rayon
        BY = (by * rayon) * crazy
    else:
        BX = bx * rayon
        BY = by * rayon
     
    ligne_zero  = pygame.draw.line(fenetre, GREEN, (centreX,centreY),(centreX + rayon, centreY), 5)
    rayon_alpha = pygame.draw.line(fenetre, RED, (centreX,centreY),(BX + rayon, BY + rayon), 5)
     
    myfont = pygame.font.SysFont("monospace", 15)
     
    label_alpha = myfont.render("angle alpha (rad) : "+str(alpha), 1, (255,255,0))
    label_bx = myfont.render("bx : "+str(bx), 1, (255,255,0))
    label_by = myfont.render("bx : "+str(by), 1, (255,255,0))
     
    fenetre.blit(label_alpha, (1500, 700))
    fenetre.blit(label_bx, (1500, 720))
    fenetre.blit(label_by, (1500, 740))
     
    pygame.display.flip()
    time.sleep(2)
     
    """
    https://www.google.fr/#q=coordonn%C3%A9e+cercle+angle+pi+radian+degr%C3%A9    RAPPEL TRIGO
     
    1 radian = 180/pi = env 57°
     
    (deg) 30    45    60    90
    (rad) pi/6  pi/4  pi/3  pi/2
     
    x en degres = (x*pi)/180  en radians
     
    2 pi = tour complet
    pi = 180°
     
    math.degrees(angle_en_radians) # Convertit en degrés
    math.radians(angle_en_degrés) # Convertit en radians
    """

  2. #2
    Membre régulier Avatar de fifafou
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2016
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2016
    Messages : 173
    Points : 92
    Points
    92
    Par défaut
    je ne comprend pas tous ces if
    tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    bx=rayon*cos(alpha)
    by=-rayon*sin(alpha)
    et puis c'est tout,non?

Discussions similaires

  1. Des libellés aux colonnes
    Par szdavid dans le forum Oracle
    Réponses: 4
    Dernier message: 29/06/2005, 12h28
  2. Association des programmes aux fichiers: icônes
    Par jamesb dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/01/2005, 19h17
  3. Recherche de source pour tracer des codes barres
    Par Tardiff Jean-François dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/10/2004, 16h05
  4. Réponses: 3
    Dernier message: 15/04/2004, 08h44
  5. [Struts] Droits d'un user et gestion des accès aux pages
    Par PeteMitchell dans le forum Struts 1
    Réponses: 4
    Dernier message: 14/04/2004, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo