Koch.
Répondre à la discussion
Affichage des résultats 1 à 20 sur 20

Koch.



  1. #1
    invitebf26947a

    Koch.


    ------

    Bonjour, j'essaye de tracer le flocon de Koch sous matlab, mais je n'y arrive pas.


    A(xa,ya)
    B(xb,yb)

    Tout d'abord, je trace un segment AB, au 1er tiers je place C, eu 2eme tiers je place D;

    Ensuite j'essaye de construire un triangle equilateral, de sommet E;
    Là est le probleme, E est l'image de D par la rotaion d'angle pi/3 de centre C.
    MAis je ne sais pas comment faire cela sous matlab;

    De plus, j'ai un trait avec un triangle dessus( il doit y avoir entre C et D)
    Et Encore, comment continuer?

    Merci de toutes vos reponses!!

    -----

  2. #2
    NicoEnac

    Re : Koch.

    Bonjour,

    Si A admet pour coordonnées et B , je suppose que tu as trouvé que C admet pour coordonnées et D

    Ensuite, comme tu l'as fait remarqué E est l'image de D par la rotation d'angle et de centre C :


    Il te suffit dès lors de remplacer par , par et par et tu obtiens tout en fonction des coordonnées de A et B.
    "Quand les gens sont de mon avis, il me semble que je dois avoir tort."O.Wilde

  3. #3
    NicoEnac

    Re : Koch.

    Re,

    J'ai testé rapidement la méthode du message#2 sous excel et ça marche plutôt pas mal et c'est assez rapide (Flocon à 12288 points en 3-5 secondes). Ca donne une figure assez sympathique

    Bon courage à toi et n'hésite pas à demander des précisions et/ou compléments au cas où mes explications n'aient pas été assez claires.
    "Quand les gens sont de mon avis, il me semble que je dois avoir tort."O.Wilde

  4. #4
    invitebf26947a

    Re : Koch.

    ????
    Je ne vois pas comment?

  5. A voir en vidéo sur Futura
  6. #5
    invitebf26947a

    Re : Koch.

    Mais comment je fais cette commande sous matlab????

    Ensuite, je ne sais pas comment redefinir mes points?

  7. #6
    NicoEnac

    Re : Koch.

    Citation Envoyé par deyni Voir le message
    Mais comment je fais cette commande sous matlab????
    Je ne connais quasiment pas Matlab donc je ne sais pas si une commande existe. Avec ce que je t'ai donné, pour chaque couple de points (A,B) du flocon au rang n, tu peux trouver les coordonnées des points C, D et E du flocon au rang n+1.

    En gros, chaque point au rang n (A) engendre 4 points au rang n+1 (A, C, D et E)
    "Quand les gens sont de mon avis, il me semble que je dois avoir tort."O.Wilde

  8. #7
    invitebf26947a

    Re : Koch.

    Ok, mais je trace le triangle et ensuite?
    Le 1er Ok, mais le 2eme...Je sais qu'il faut faire une boucle mais comment?Avce quoi?

    Merci.

  9. #8
    NicoEnac

    Re : Koch.

    Sais-tu tracer un nuage de points reliés entre eux à partir d'une liste de coordonnées sous Matlab ?

    Si oui, voici comment j'ai construit mon flocon :
    Au rang 1, c'est un triangle équilatéral => 3 points
    ...
    Au rang n, j'ai 3*4n-1 points car on multiplie le nombre de points par 4 à chaque itération.

    Je fais simplement une boucle for dans laquelle, pour chaque point de la liste au rang n, je construits C puis E puis D. A part t'écrire mon algo (qui en VBA excel donc inutile pour toi), je ne sais pas quoi te dire
    "Quand les gens sont de mon avis, il me semble que je dois avoir tort."O.Wilde

  10. #9
    invitebf26947a

    Re : Koch.

    Ok merci beaucoup; je sais comment faire maintenant. Si j'ai bien compris je fais:

    1)Placer les points A et B;
    2)faire une boucle, dans laquelle je fais construire les points C,D,E
    3)j'affiche
    4)Je me plante =) ou j'explose de joie

    C'est ça?

    PS: Pour to alogo, je pense que tu as raison, il ne sera pas tres utile pour moi.

    Merci

  11. #10
    NicoEnac

    Re : Koch.

    Citation Envoyé par deyni Voir le message
    Ok merci beaucoup; je sais comment faire maintenant. Si j'ai bien compris je fais:

    1)Placer les points A et B;
    2)faire une boucle, dans laquelle je fais construire les points C,D,E
    3)j'affiche
    4)Je me plante =) ou j'explose de joie

    C'est ça?
    Je crois que tu as compris. Je l'explicite plus clairement que je ne l'aie déjà fait :

    Le flocon au rang n peut être représenté par une liste de points (M1, M2, ..., MN) avec N = 3*4n-1.
    Construire le flocon au rang n+1 revient à remplir les trous dans la liste suivante : (M1, xxx1, yyy1, zzz1, M2, xxx2, yyy2, zzz2, ..., MN, xxxN, yyyN, zzzN) qui compte donc 4*N points.
    Tu remplis ces trous an prenant pour chaque indice i, A= Mi et B = Mi+1 sauf pour i =N où tu prends A= MN et B = M1. On a alors C = xxxi, E = yyyi et D = zzzi.
    Tu viens donc de créer ta nouvelle liste (M1, C1, E1, D1, M2, C2, E2, D2, ..., MN, CN, EN, DN)
    "Quand les gens sont de mon avis, il me semble que je dois avoir tort."O.Wilde

  12. #11
    invitebf26947a

    Re : Koch.

    Merci.

    tes explications sont claires.

    Je vais tenter, je parie que je vais me planter, mais qui ne tente rien n'a rien

  13. #12
    invitebf26947a

    Re : Koch.

    Là je dis help;
    Parce que je ne sais pas faire les rotation sous matlab, n'y faire l'affichage(c'est plot, mais plot de quoi???)
    De plus ça trace un trait où est superposé un triangle, alors que la base BC ne doit pas comporter de trait.

  14. #13
    invite332de63a

    Re : Koch.

    Bonjour,

    ta discussion ma donné envie de faire une procédure maple pour faire des flocons moi aussi et je te conseille de travailler tout le long dans les complexes et à la fin de tracer ta liste dans R². Ce qui résoud le problème de rotation car l'image de B par la rotation de centre A et d'angle theta est :

    b'= exp(i theta)*(b-a)+a

    RoBeRTo

  15. #14
    invitebf26947a

    Re : Koch.

    Ok, je crois voir...

    Pour les coordonées de E j'ai:

    xe=abs((xd-xc))*cos(pi/3)-abs((yd-yc))*sin(pi/3)+xc

    ye=abs((xd-xc))*cos(pi/3)+abs((yd-yc))*sin(pi/3)+yc

    C'est bon que si A(0,0) et B(k,0); k quelconque.
    Les autres cela donne un truc bizzarre.


    De plus je ne sais pas comment fair ma boucle; car si je fais à la fin de ma boucle

    xa=xc;
    ya=yc;
    xb=xe;
    yb=ye;

    Ca marche pas et aussi tout ce fais que sur un seul coté.

  16. #15
    invite332de63a

    Re : Koch.

    Je te conseil de faire une autre procédure par exemple "Struct" qui a deux points a et b donne une liste [a,c,e,d,b] que l'on nomera LC avec c et d tq c=(2*a+b)/3 et c=(a+2*b)/3 et e=exp(i*Pi/3)(d-c)+c
    tout ca en complexes.
    Je vais te donner l'idée génrérale.
    Tu veux former un coté du flocon de koch


    Flocon procédure de (a,b)
    L:=[] et Li:=[a,b]
    Pour i allant de 1 à n tu fait
    L:=Li et Li:=[]

    pour j allant de 1 au nombre de d'élément de L moins 1

    struct(a,b)

    Li:=[op(Li), op(LC) ] (ici tu recopies les éléments de LC dans Li rang par rang.

    Fin de la boucle.

    fin de la boucle.

    Tracer la Liste Li en reliant les points par des traits:

    Fin de procédure:

    (a ce stade ù tu as donc une liste ordonnée de points qui si tu les relis les un après les autres te donne le Flocon sur un coté, le problème étant que les points sont en complexe. donc tu peux faire une liste qui traite ses points en coordonnées réelles)

    Et après tu trace ta liste .

    Je ne veux pas te mâcher le travail^^ donc je te laisse l'exprimer

    Et si tu veux faire sur les 3 côtés alors tu fait un procédure qui appelle "flocon" et la fait faire sur les 3 cotés du triangle.
    RoBeRTo

  17. #16
    invitebf26947a

    Re : Koch.

    Citation Envoyé par RoBeRTo-BeNDeR Voir le message
    LC avec c et d tq c=(2*a+b)/3 et c=(a+2*b)/3 et e=exp(i*Pi/3)(d-c)+c
    tout ca en complexes.


    Citation Envoyé par RoBeRTo-BeNDeR Voir le message
    Flocon procédure de (a,b)
    L:=[] et Li:=[a,b]
    Pour i allant de 1 à n tu fait
    L:=Li et Li:=[]


    Citation Envoyé par RoBeRTo-BeNDeR Voir le message

    struct(a,b)

    Li:=[op(Li), op(LC) ] (ici tu recopies les éléments de LC dans Li rang par rang.

    Fin de la boucle.

    fin de la boucle.


    Citation Envoyé par RoBeRTo-BeNDeR Voir le message

    Tracer la Liste Li en reliant les points par des traits:
    .
    Plot ???
    Fin de procédure:

    Citation Envoyé par RoBeRTo-BeNDeR Voir le message

    (a ce stade ù tu as donc une liste ordonnée de points qui si tu les relis les un après les autres te donne le Flocon sur un coté, le problème étant que les points sont en complexe. donc tu peux faire une liste qui traite ses points en coordonnées réelles)
    .


    Citation Envoyé par RoBeRTo-BeNDeR Voir le message

    Et si tu veux faire sur les 3 côtés alors tu fait un procédure qui appelle "flocon" et la fait faire sur les 3 cotés du triangle.
    RoBeRTo



    Merci, mais j'ai rien compris.

  18. #17
    invitebf26947a

    Re : Koch.

    Je ne comprend rien a ce que je cité.
    Puis-je avoir quelques explications.

    Merci beaucoup.

  19. #18
    invitebf26947a

    Re : Koch.

    Alors là... Je dis "HELP".

  20. #19
    invitebf26947a

    Re : Koch.

    Merci dieu j'ai reussi a tracer mon premier triangle quelque soit ma configuration;

    Neanmoins, je n'arrive pas à faire ma boucle des deux cotés de chaque triangle
    Comment faire?

  21. #20
    invite332de63a

    Re : Koch.

    Bonjour,
    écris ce que tu as fait pour voir. Je peux te passer ma procédure maple si tu le souhaites, même si je crois que tu es sous un autre logiciel.

    RoBeRTo

Discussions similaires

  1. Courbe de Von Koch
    Par invitee8378889 dans le forum Mathématiques du supérieur
    Réponses: 7
    Dernier message: 08/02/2010, 11h17
  2. Le flocon de Von Koch
    Par invite2bc726ff dans le forum Mathématiques du collège et du lycée
    Réponses: 0
    Dernier message: 05/11/2008, 17h10
  3. flocons de Von Koch
    Par invitec4576fd9 dans le forum Mathématiques du collège et du lycée
    Réponses: 1
    Dernier message: 22/04/2008, 11h37
  4. Le flocon de Koch
    Par invitef36c682d dans le forum Mathématiques du collège et du lycée
    Réponses: 9
    Dernier message: 15/04/2007, 15h52
  5. Qu'est-ce que le postulat de Koch?
    Par invite72b32a1f dans le forum Biologie
    Réponses: 12
    Dernier message: 06/08/2004, 23h04