Quelques Rotations d’une Image en 2D

Partagez votre expérience de PureBasic avec les autres utilisateurs.
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Quelques Rotations d’une Image en 2D

Message par PAPIPP »

Bonjour à tous

Voici quelques exemples de rotation d’une image en 2D.
Les rotations présentées ici tournent toutes autour d’un axe fictif parallèle à un axe Z en 3D perpendiculaire à la surface de l’écran ou du plan X,Y.

Il est certainement possible de réaliser des rotations d’image qui tourne autour des axes parallèles à X ou à Y (peut être un prochain exemple).

Le prg ci-dessous présente 3 images (le même pinguin) en rotation suivant les aiguilles d’une montre.

1) la première image représente la rotation autour du centre de l’image (En haut à gauche)

2) La deuxième image (En haut à droite) représente toujours la rotation suivant un axe parallèle à l’image précédente.
Mais l’image a été découpée en lamelle de 1 pixel de large et placée en rotation ce qui donne un effet différent de la première image.

3) la troisième image (toujours en rotation) tourne autour d’un centre situé a l’extérieur de l’image.
Cette image par simplification est toujours synchronisée avec la première.

Les commandes :
Il y a 3 commandes F1 F2 et F3

1) F1 commande le sens de rotation de la première et la troisième image.
cette commande compte 3 positions correspondant à 3 cliques de cette touche.
11) première position rotation dans le sens trigonométrique (inverse des aiguilles d’une montre).
12) deuxième position arrêt de la rotation.
13 Troisième position rotation dans le sens des aiguilles d’une montre.
Continuez à cliquer cette touche F1 pour réaliser les fonctions 11 12 et 13.

2) F2 commande le sens de rotation de la deuxième image.
cette commande compte 3 positions correspondant à 3 cliques de cette touche.
21) première position rotation dans le sens trigonométrique (inverse des aiguilles d’une montre).
22) deuxième position arrêt de la rotation.
23 Troisième position rotation dans le sens des aiguilles d’une montre.
Continuez à cliquer cette touche F2 pour réaliser les fonctions 21 22 et 23.

3) F3 Cette commande permet d’alterner l’angle de rotation +J à –J d’une image sur l’autre ou de synchroniser les 3 images.
Ceci donne des effets sur la vision des différentes images.
cette commande compte 4 positions :
31) Position permettant de synchroniser les 3 images.
32) Position qui alterne les angles de l’image 1 et de l’image 3.
33) Position qui alterne les angles de l’image 2 et des images 1 et 3.
34) Position qui alterne les angles de l’image 2.
Les effets obtenus vont dépendre du moment ou la commande est réalisée.
Continuez à cliquer cette touche F3 pour réaliser les fonctions 31 32 33 34.

Code : Tout sélectionner

EnableExplicit
UsePNGImageDecoder()
UsePNGImageEncoder()
#NomAppli$="ROTATION_IMAGE tapez F1(Image 1 & 3) F2(Image2) ou F3(Alterne angle + -)"
#LargeurEcran=800
#HauteurEcran=800
#NomIMAGE$="L:\IMAGES\PINGUIN.png"
Define LargeurIMAGE=0,HauteurIMAGE=0,OPW0,OPS1,image,image2,image3,RAY,ibf.f,ib,sensj11,sensj21,sensj1,sensj2,sensj3,sensjj1,asensjj1,asensjj2,j,rj,J2,k
Define texte$,texte2$,texte3$, M_ERR$
If InitKeyboard()=0 Or InitSprite()=0
  MessageRequester("Error","Initialization failed !",#PB_MessageRequester_Ok | #MB_ICONERROR)
  End
EndIf
OPW0=OpenWindow(0,0,0,#LargeurEcran,#HauteurEcran,#NomAppli$,#PB_Window_SystemMenu)
OPS1=OpenWindowedScreen(WindowID(0),5,5,#LargeurEcran-10,#HauteurEcran-10,#True,0,0,#PB_Screen_SmartSynchronization)
image=CatchSprite(#PB_Any,?PINGUIN)
image2=CatchSprite(#PB_Any,?PINGUIN)
image3=CatchSprite(#PB_Any,?PINGUIN)
LargeurIMAGE=SpriteWidth(IMAGE)
HauteurIMAGE=SpriteHeight(IMAGE)
If OPW0=0
  M_ERR$="  Création non réussi de OpenWindow "+#LF$ ; #LFCR$
EndIf
If OPS1=0
  M_ERR$+"  Création de OpenWindowedScreen non réussi "+#LF$ ; #LFCR$
EndIf
If image=0 Or image2=0 Or image3=0
  M_ERR$+"  Création des Iamges non réussi "+#LF$ ; #LFCR$
EndIf
If Len(M_ERR$)>0
  MessageRequester("Error",M_ERR$ ,#PB_MessageRequester_Ok | #MB_ICONERROR)
EndIf
RAY=175
Structure txy
  posY.i
  posx.i
EndStructure
Global Dim tab.txy(360)
For ib=0 To 359
  ibf.f=ib
  tab(ib)\posx=Cos(Radian(ibf))*RAY+3*#HauteurEcran/5-HauteurIMAGE
  tab(ib)\posY=Sin(Radian(ibf))*RAY+3*#LargeurEcran/5
Next

sensj11=-1
sensj21=-1
sensj1=0
sensj2=0
sensj3=0
sensjj1=0
asensjj1=1
asensjj2=1
j=0
rj=0
Repeat
  ClearScreen(0)
  RotateSprite(IMAGE,j,#PB_Absolute)
  DisplayTransparentSprite(IMAGE,#LargeurEcran/4-(LargeurIMAGE/2),#HauteurEcran/5-(HauteurIMAGE/2));
  RotateSprite(IMAGE3,j,#PB_Absolute)
  If j<0
    J2=360+J
  Else
    j2=J
  EndIf
  DisplayTransparentSprite(IMAGE3,tab(j2)\posx,tab(j2)\posY);
  
  For k=0 To LargeurIMAGE
    ClipSprite(IMAGE2,K,0,1,hauteurIMAGE)
    RotateSprite(IMAGE2,rj,#PB_Absolute)
    DisplayTransparentSprite(IMAGE2,#LargeurEcran/4*3-(LargeurIMAGE/2)+k,#HauteurEcran/5-(HauteurIMAGE/2))
  Next
  rj+sensj21
  rj*asensjj2
  rj%360
  j+sensj11
  j*asensjj1
  j%360
  If ExamineKeyboard()
    If KeyboardReleased(#PB_Key_F1) ; 3 positions ordre des Sens Image 1,  1 sens aiguilles d'une montre,  -1 sens Trigo , 0 arret de la rotation
      sensj1+1
      sensj11=sensj1%3
      sensj11-1
      texte$="(Image haut gauche) Arret=0, sens trigo-1, sens montre=1 sens="+Str(sensj11)
      ; Debug _n(sensj11)
      ;     ElseIf KeyboardPushed(#PB_Key_F2)
    ElseIf KeyboardReleased(#PB_Key_F2) ;;3 positions ordre des Sens Image 2,  1 sens aiguilles d'une montre,  -1 sens Trigo , 0 arret de la rotation
      sensj2+1
      sensj21=sensj2%3
      sensj21-1
      texte2$="(Image haut droite) Arret=0, sens trigo-1, sens montre=1 sens="+Str(sensj21)
      
    ElseIf KeyboardReleased(#PB_Key_F3); 4 positions, Cas 0 tout est synchroniné, Cas 1 alterne angles Image 1, Cas 2 alterne angles Image 1 & Image 2, Cas 3 seule image2
      sensj21=sensj11
      rj=J
      sensj3+1
      sensj3=sensj3%4
      texte$="Synchronisation Im1 Im3 et parfois Im2 Cas="+Str(sensj3)
      texte2$=""
      
      Select sensj3
        Case 0
          sensj21=sensj11
          rj=J
          texte3$=""
          texte2$=""
          asensjj1=1
          asensjj2=1
        Case 1 ; alterne j1
          If asensjj1=1
            asensjj1=-1
            texte3$+" cas=1 Alterne angle IM1 et IM3 + - ("+Str(asensjj1)+")"
          Else
            texte3$=""
            asensjj1=1
          EndIf
        Case 2
          If asensjj2=1
            asensjj2=-1
            texte2$+" cas=2 Alterne angle IM2 + - ("+Str(asensjj2)+")"
          Else
            texte2$=""
            asensjj2=1
          EndIf
        Case 3
          texte3$=""
          texte2$+" cas=2 Alterne angle IM2 + - ("+Str(asensjj2)+")"
          sensj21=sensj11
          rj=J
          asensjj1=1
          
      EndSelect
      texte$+texte3$
    EndIf
    
  EndIf
  
  
  If Len(texte$)+Len(texte2$)>0
    StartDrawing(ScreenOutput())
      DrawText(5,5,Space(300),RGB(0,0,0),RGB(0,0,0))
      DrawText(5,20,Space(300),RGB(0,0,0),RGB(0,0,0))
      DrawText(5,5,texte$,RGB(255,255,255)); [, CouleurTexte [, CouleurFond]])
      DrawText(5,20,texte2$,RGB(255,255,255)); [, CouleurTexte [, CouleurFond]])
    StopDrawing()
  EndIf
  FlipBuffers()
  
Until KeyboardPushed(#PB_Key_Escape) Or WindowEvent()=#PB_Event_CloseWindow
DataSection
  pinguin:
  Data.q 727905341920923785,5927942488114331648,-8358680906352820224,3094038914701197832,5569109987633922231,2525686008567498565
  Data.q 648518348464914500,-4459126579114981264,8489406251424153600,5566843881284173886,7060531027587891265,4702964919685873669
  Data.q 2061530966603233364,-5531371864674822715,2632917667851942323,1812189109948057865,-1815483672048171508,-8873795576380232596
  Data.q 3904746685216299779,-7917007059820517594,-1790571339794626044,3931350889008193294,8025392269587086377,-3032051385903645953
  Data.q-343792664737811125,8567751829559078523,878445425429124539,8183927222338438023,-5248573012574905159,-1687985259539102777
  Data.q 3934824400725842724,-1229818260597136571,-6390998612176640786,6148915105170287014,7766227962114820003,-6756398961151126707
  Data.q-1755916882770898078,113842943433865715,-5563256253837812665,-4360618241602048258,9080196636668427277,-8951028070420049470
  Data.q 8702931869764665590,-414736237851197892,-9201613470178818712,4972581825861081112,1457288662861635074,-1101028755344313078
  Data.q 7600525029059585016,-8327971839406713688,2782592733116711014,4938460061255754334,-2284451196683470814,2185423407251095990
  Data.q-4195965412258289577,-8645083521223827746,1861934386625870559,9136871808135014842,-6454798282345081464,3596386000757053369
  Data.q 3137597438194612896,8404263584434174126,6298121288761601338,-2183871507954576025,8434538330014125902,-9016178931043119101
  Data.q-6795592768205099572,4609995517658382373,8844982019418621,-3728649601209541074,2070821524249239121,-7563175868460310473
  Data.q 3344744519802919387,-2706456465804957510,6961893625454422452,-152696517227943877,-7690210892787101128,3455655120695627144
  Data.q 6870195029719330616,3367233746496514173,-6038954740050979760,7297491551742155168,8906369432644901703,2695439687356477238
  Data.q-2419293696229783141,6888037713952175083,-6742077862796527234,3330093133849658862,-6916847644331540521,-7501333106489274543
  Data.q-613089712854106529,-264354095286299427,1585724495133305514,1208534546343934392,2630160461669282583,1365108578898619955
  Data.q 3354845867940701128,7927727201205609724,9102782984165894571,-662000445810547846,8901937001004101412,4456170939233722334
  Data.q 1833779356976237979,4209940257706346652,912166298569651437,1665836514822752014,8164921662710065665,-2300160204551529272
  Data.q 5453950774453416487,-321688990180187830,-7062546167041614338,-3458889690308474248,5785228937205775615,-1156733609549884380
  Data.q 4428648631975609229,-3507991671480047545,6150987671804702331,7843591198746575161,207243661463120851,4833661003537624620
  Data.q-8713473748434800695,207730973922260307,3761002380247790282,-429550978058554634,3099852197209362431,-3151240393919945232
  Data.q 6862806981510715569,4632314439937936121,-4901708809246368750,-2383721880250643218,-2199821799329367170,-122017638865629328
  Data.q 8973794604401221961,7874419833030544190,-8086503935109729840,-4519369857916302561,6509160021865166061,1307375601502618202
  Data.q-1409279530908957207,7492942290481244649,8078765909181471623,-9114169625372891941,-3868350082129606380,-4593475552811943263
  Data.q-5126103087503010937,9036135805075670750,-2237161223726567008,1983551634159798430,-8904713105626218370,2305931299918965736
  Data.q-7284603031087571570,2685410781646839605,1385159734918637892,8601719769468037316,-1699287611613808675,5602838546554783748
  Data.q 3856234273389951330,-7271474711617704939,-9135742111179634584,6798078759639982987,6140253554603457919,-8071261361389729262
  Data.q 5046733507559611266,-5598501958967784569,473846239762179783,8420884968553755266,5096115071355473875,691693966407757128
  Data.q-7122536430388256870,3373028712488002195,9218550535723497104,4384873991371339858,1811420430343704708,5958347799543027013
  Data.q 5220666244880887001,-5399330525814726066,-8522325347541467688,-5870037337823340113,-2054709704949963071,4502532279595319181
  Data.q 2460728874398460943,3323894526480145309,6332618998930609039,-8413954015989358244,-1092428815580521939,8429693990951734831
  Data.q-6767546124985983215,5130184409997211883,-4070285016772831733,-4937771529883515161,-2256350053828823141,9175187520495209122
  Data.q-3015436394009759552,-4106697459592186303,-3800854017756848345,260397983072296610,-6722183580913642464,-949552086216265459
  Data.q-2541397197393280752,2191584727099323262,4787863201205340699,5602525166868043632,-6994648809654584283,-7676781310812342416
  Data.q 5032789867478263497,7262502560867928981,5136152248846496084,3321206425787913557,-8637792714355766180,5270495101519035002
  Data.q-7309496428820902436,2109745095337754248,-8370028684811438107,-3036853904513254885,6426055558628497881,2619201045782512818
  Data.q-5057900137642254062,-8657007459083131507,-8865629897447103822,5504039244837008057,8915573975649266616,-6477836412815535503
  Data.q 584971500306996045,7472556540933503601,8924988730927960911,-2233770859633083525,-4742417977716054853,1058778204098254328
  Data.q-980437654314275542,1160360903596804000,-4108759460405511872,-8114441050036998037,3340729615073818173,6906225867333166415
  Data.q 9067992349452649841,4306393080954494782,-8223872576636338961,-3898724820164211910,-6942345186180756083,4332189896156002942
  Data.q 5791571918264193268,7442644055870123903,3065310380400516829,8086902893356052387,8333698239009911778,-7537401430771452590
  Data.q 1660567821960656477,-4962853991060955974,5106086880606612341,3518752560006774499,-6104679921885572566,7905831419182230870
  Data.q-1814147098638328099,-8447224886188604558,886163785066607893,145340604278481149,4037927320168727425,-7477604815192213067
  Data.q 8739250454490746377,-564786715823694104,8341507634467820745,-5779249911523291991,1894933331910121212,5498426002811738463
  Data.q 6669137611787398870,-2986248662168908300,7404685998863347406,6921575591051976754,1678462008463246386,-4467680592155415637
  Data.q-958847431095486542,-1726209509006774465,7481443117595655710,-5125188220100314594,-6645653361374499026,7948356570760945126
  Data.q-7170378371583124705,3615488678370743295,8544442286530031065,-4940769880691768813,-4940879957795873435,1572158958290287590
  Data.q-1544842321584144673,-1507979829892074027,-9140824247068454460,-6744107729518817739,-2390915266570949023,-3633730654589489371
  Data.q-8198239700693783091,9043082664573507045,-8280152623941806065,-2721574685684342780,-1429304723570082024,2577883324132310898
  Data.q-325140674186035825,-2873110465119013875,6293605288188165743,-2152727206537336569,-8424506245443173155,5704818051214516097
  Data.q-4359623930092920520,8142261715295152353,8916977655579392494,-646491285845241862,583249105212005612,-9013236434861591238
  Data.q-7319934283634651109,125552983849882326,-4111294642218729586,3308873449905778971,-4595992036923964868,-7409978990237990830
  Data.q 971474425709360798,164101484916957836,696946930988122155,8199255217094369666,-9166249829461539098,-3176756891242956703
  Data.q-7505705360083394649,-8983762565380607396,-7551832157070032642,-517234842054453353,1150846696418197958,7742013751558609119
  Data.q 2236050346821544811,4453920016564303709,2578572726237382647,-5747392967411497841,-6225210966443576573,-4514857622466446238
  Data.q 4496847247519125600,-789762578354498698,-5770293723734938879,-2671369617862168131,4481495135619469237,256646795377515402
  Data.q-2742485077541252926,1694986675754475367,5293172806647154782,-7184759816570281442,5844676098604305710,-7484836534029648884
  Data.q-6942323138964241352,8915924979559280302,-7973050774816179345,1399359509018741382,-9132347474430124367,-8655363801562343088
  Data.q 6635488101679365567,-2334004259176914759,-2956122292784562788,4189802488030726049,2908771158637726210,-8524017333885823951
  Data.q-8728145214039807774,5884186544333375475,-430073996729456781,-8623563486707310863,8483336273853829009,5783695808741014208
  Data.q 14697048448451078,5398997901161406842,-4521045390675260704,-60723963000086301,142352621302998809,-4631962128275329089
  Data.q-7816987710307985415,-8604189897022088798,3739984888659222669,7038026034626481767,8709459858784925728,-594479549936858621
  Data.q-1455620448319813898,5170477620617524294,-6310154841738647709,-7024847499561798382,-55134443899234300,4341824405598434300
  Data.q-4559958951179981294,6005073466287199808,2447884034137604947,-6259191426042655008,5841070727589030061,-730136784483249672
  Data.q-8764541823302606901,-4888691752533769688,4689628197376192281,-7217578058280564332,7579604408558009967,1476370645069604050
  Data.q 2888338357659873892,7138283274764062852,6210736181484850435,1968049516472068488,3682154440842793809,1280709628977466470
  Data.q-2452366693094663830,892386726511107959,1616113318962030622,8154877626840423489,4885576574365653598,4945374074031424751
  Data.q-5077551036986822786,-2326241247764704940,1147722605302463358,-8025045298905453050,1939936709121178142,5598364433444022124
  Data.q-1027388123621805928,7012344491020522104,699557058705438378,1487389437369236226,4422349935701983549,7295877756934664428
  Data.q-8949947740830802544,1881286023464108325,7936191371302503479,3964547891046502304,-421444889523861995,-6655599461599336405
  Data.q-923916547859325268,6770122981898001895,-4291613854321936324,-1323995436054100975,370006648661165952,-8097635943824753538
  Data.q-8032555422900969717,1001990810432131293,6242356978400824672,-6897363658449952918,-2829709388855978221,-1452058851921164944
  Data.q-1674698001334061327,4460427146406584541,8398742814051498744,-7901597459928349910,-418140531280038390,-6803898457083357796
  Data.q-8856677842141470459,2436886140534801509,-2806810958356488397,5986412705665515477,-7386924733404975943,5924727675713323936
  Data.q-3638307386000551852,-2147846354747188448,3900701621409166881,2544912742089162990,351972872556331626,2023857893511008642
  Data.q-6251084214182555695,3204142769236922561,-5830945137114660998,-1128767223099161150,1732260781472732202,6786668323393849675
  Data.q 4489969817428255922,-5565110090758087271,937020567339046544,-4970068279375595982,837824740422461980,5354112167328225748
  Data.q-4701516431045740234,-97021518986834552,-9041157385084081551,-3179398936611560177,-9125408763019887201,-6781702104199377502
  Data.q 6415998976688622357,2797299684982732556,8432893681399466033,8321950114935665665,8559954030764591759,4861543470688493924
  Data.q-5197726274927115379,4681847985155078878,-7781639067125526520,582929039017628679,7410248607032571676,5958658017574241476
  Data.q-5798668475331144859,6580445587599783294,-504896254679692453,3095185664777516131,3287906551558382322,2573115417268119856
  Data.q-1429181752274386220,8449648778291687896,8925674458957232832,564818675637796335,-500120363788486905,5350772674316880387
  Data.q-477848685109794645,7659821716538499181,-6491508307928763300,8428333645477870323,-5656848323560508835,-3903862988493362315
  Data.q 3686675039184396050,2332675604709944219,-7572676499516082073,8281883546205131482,2677902782095372011,1001153021371232656
  Data.q-1453707508655678147,5389307834656915156,5083207621783698798,5360204454710571379,-2748622563952725558,-5824032249407145474
  Data.q 802972905184468248,-3076473351874798717,7037121156594977253,3967032593232897350,-5598778658859306549,-3853753255160560094
  Data.q 6110623807980653989,-3747945027321694609,4295692690095200237,8750733894277128801,-6054276615540770404,4955693971576371631
  Data.q-3278034384835259532,-2572213790653644273,8740380169215944403,1325642655850279641,2815467073661510700,-1244176627554967984
  Data.q-7416822656256382022,-6766376302843841870,-4864300881261788501,4404355819741473814,-3763735486711782325,-1661728067954852727
  Data.q 2448902150348754579,4856313646597279316,1214836094208116535,1419061332545386347,-7259702149235693014,6637954182457815840
  Data.q-7950805768756465896,219017317988571921,4789301698097971454,-1172080100272390767,8028724935557619134,-1157845585752931845
  Data.q 8859531231743778128,-682869062006092642,5850892261161732848,9002613582452177824,-6310055467023869209,1831899051375504556
  Data.q 5616094477876528094,-3135739658343525968,6807091860219081692,-5119424071069359353,1322446100428063178,7386732924569373412
  Data.q 4209077692553653945,-6532606915732150078,8582760716136667939,9142069658832577990,6420755125864077798,-4889362313839429271
  Data.q-2457281972815160519,-3490297424040310977,-7620970143952487618,-6259902479484555250,1560548321742212617,-5628929498458268571
  Data.q-9019629377835449156,8646204118212987218,8749327488713523630,-904526765866829272,4579848407809733194,-9057943868170063882
  Data.q 2399637578067007781,-5699229386815506063,3031790220775447408,8848735263138449952,637497746828154603,7953161004253990909
  Data.q 7537110803414666880,-4760599763291117207,7483270077889371879,5203754472436399519,-6126988785042354512,5373046377486977634
  Data.q 5326740251573992704,-7709336328323774612,-288371182411548771,-4001483488390397762,-962347868480509763,-2433785114034950920
  Data.q-1626170350160212202,-4108657711027871536,-8033718092911628309,1649115964365040171,-3042243655672683860,-6084483232830547798
  Data.q 2912630751367756287,8961907432044008569,8348817736629732849,-1866210133376082242,8243499693736234720,1420655789204006676
  Data.q 5513901331146011542,3811735790667154230,-520845721410177401,-6779302669368773360,3530940420898496135,-3176738912014788498
  Data.q-918419672730660543,6372204928377829090,-18158956652815464,-216896852333607031,-3648241497240795167,8591936013735385317
  Data.q-1809689142245823963,6329102294943286458,-6707423779310259084,-3647532327578534481,3999449805428285901,7576898855404551389
  Data.q-7382159236191247270,-2383119566898135584,-1894892874185098835,2163953207425264362,1786586455754008056,-5146379380758795710
  Data.q-5164255695422516718,-6171141877368674246,6635866921279185734,-264159045447326096,1238386167271355340,-4837635545296452117
  Data.q-235284129600669053,468220378059076508,-892717277289732924,345148807591961230,3501559125898839790,-558991965128126730
  Data.q 5487557043560011264,-5851591539846053736,-2996161659867710627,3618363052617991852,9106093563384247909,-7083471615893731858
  Data.q-5848100145379461413,-5271790095939622051,-6994060628246798762,-6469334683501554767,1356385444971682260,5214143650225249134
  Data.q-653498472588204872,-2783178329372453739,5723161383466326020,-5072269296334357178,4430837336208266238,8919798795657158131
  Data.q-8714905714052443733,2082156283188529603,3791834818852194062,-1587395338704807705,-4180773397360996939,-1810202547261964753
  Data.q 7314748771039407682,-4773058461688810414,7651473370349405886,-9208224964786659071,-2588938707864564560,-3415301912000767584
  Data.q 8401949294678841018,1825108823798187088,-3173633182646737040,630876985467176271,7013567450338538972,6741665018530628366
  Data.q 4667871254926713208,-1098382758141467005,989433553640257289,-6465168444504507738,2633148784757700489,-2564677635164717893
  Data.q 6615042052567143992,-2009103404446717678,2694766856669813450,-6138228396541561212,-428737253206855915,-2940757830120755123
  Data.q-7988568622127468508,524318409800430192,-1823009049762770248,6166523769469671317,-4376449808774588181,2969104072224483764
  Data.q 7090743773861239598,4021128920927048760,9028354848451688670,719681020353431370,4575675526620060261,264493783057291771
  Data.q-681586437575704464,-8332912746507819704,1707349673746362887,-3858848683556643056,-5444510129735129103,5176266950591925275
  Data.q 2811308465843009427,6549661715198958940,1526173118061069497,-8371634973493649076,-2736362308298086865,5082490775830202959
  Data.q 1578926459617803724,-8990530724358590361,6324112420144506930,6213115421302705606,5934014213519865621,-2892293904276569361
  Data.q 4953362530362842750,7004172329897216820,-850485932537903210,-8500476059926305660,-936231877703587418,4860791509187184138
  Data.q-8583158866592266079,-4466982550421707066,-6766028288701214897,4655913148131438674,4261758279104375505,-1314155727186183877
  Data.q 4258850430650012502,3111508711037023469,3116115611916325675,3433723628743839135,1057494045624273369,4156282293475148739
  Data.q-6379643145054360776,-2452399271011685557,-8002693836513297737,-5087551977125165287,4364133124615147525,-1485429901472583174
  Data.q 8504271218829867484,2500268342917343846,3142024356125830842,-4433980244144067871,-3644180598232860477,-2022598080861907340
  Data.q 2255667824575770092,-4369189468817791635,-1988213435013818686,4093252584489959172,-1866845699679187741,8374893361387572848
  Data.q-8136772845733605054,211127755257476669,-4166605599644672885,-8103111313063386611,-5123228854821037119,3074777562425416681
  Data.q-5524948380903246617,-9143703154438592407,-8426625520097603305,-7302128719829400197,-6175707676854233608,8808020037064262346
  Data.q-2501305506524161844,-7192701871293836204,7782306361194583369,-3950414501937179052,2792846734074867467,2938160426021929828
  Data.q 5143151085236784325,-7652976499950859622,-6172385798052671631,5508705788168606398,-1630285282187241417,2243941828375646404
  Data.q-6944462931532658805,-5735596265295402456,7446718798137386125,-756219532150922337,-9170826047393997183,2746026881598713979
  Data.q 5557760198529366552,4331321541791745150,3307358104158252737,6715738276156550243,-553481116193878730,-8675989726721823858
  Data.q 8154623359173422535,6017468352253762765,6435332337831300327,-1268728819388875634,-6034553799080434251,-5812680487448769107
  Data.q 8490642865588979530,-4511743635290382567,259467722151500860,-1649992702643363539,-3844515963878656942,-4478085225461591384
  Data.q-7666142069973418386,-3668483042183570388,-3223847128703336471,-7410195684573098330,-225830175656524692,-6448170379674359052
  Data.q 7470970960891999976,-924995490148165326,-1742974909161906007,-4162907410531272546,-5069278700681304399,-5830663910434770439
  Data.q-771073004564332928,-4168875656249941772,-7069948535287761631,8687037828435071808,6155800017725045627,-2802111668936384440
  Data.q-9074422441404779071,-616025068605021284,2186713609220379636,2579318164217280585,3823685815261690370,-6422063957779538644
  Data.q-6147860414764752883,4045964822765748613,-9178228939026895345,-3680947134267488779,-6802481329879489813,1052423475301996795
  Data.q 6024393059338842829,5304461607855620632,-6166632871685288655,-6066247551342283806,-6639100925639445382,2666585846432504516
  Data.q-8481514610342849823,4399701501068001722,489327531040404373,-6991806797718191356,7627859417867188535,5518125914087279481
  Data.q-1686208763861894758,29680754805616390,5009896102912346474,5734178530689331278,-5469411847269282910,-5871231886543846653
  Data.q-4614450025107927907,24467121391896282,-6874096886818205610,5959019119232048340,5561548459795416073,205129973954901774
  Data.q-4124520584381054684,3799939830613512959,7117321758471299475,-3703887095893765978,1126408493178049191,-7355593675668896705
  Data.q 4031578095562006328,3034177626511129604,-7447132914185441872,-1975632295450363164,3503663308163444474,-2851477321261453855
  Data.q 2657365905767613182,-8914417856896543598,-7548336494363343527,-3734584740608890477,4520069846786922191,9130161003150905222
  Data.q-3848770390611070253,2435414058385451165,-8142856383393196936,8409147591419616420,7764534276664225065,610120589816766133
  Data.q-9059921484942412925,-3687403255238613063,-4228614606017843542,-1780306474671994605,1620268920867883324,7887128880850840503
  Data.q-4657520333550050700,5940724733848019838,-1040728926774381175,3464469464487105060,-6156100583911215335,5706003497179170898
  Data.q 5046026013012292671,-758093964885608739,7477169128142342250,-3674599519878406769,8935709599522334753,-3845599121342334136
  Data.q 8907816003862401098,1145032426367145326,6954049585960706331,1713356088206616208,3225567651207318372,3128670289389414174
  Data.q 8609325823780431694,912367832037736055,-8974817366844484646,-6370399515686022320,6113166244852706647,1232314365793787521
  Data.q 4346985785202206404,2657973294158681828,5859451383148704784,-8647477065418560996,-4446173222145844069,914279330185905960
  Data.q-5475119066649977048,8728438212444686689,8400403689214466340,4275014824991379238,7419101053638647768,4368836402664813430
  Data.q-5447142236855886281,6467132421868448662,-7121261103941879051,8859590208362812053,8604517665050666595,3180622690019389226
  Data.q 3256751572586252757,-2495842592627579705,-583938710425945823,-2445625874318941952,6429202200744616645,7434196907876862923
  Data.q-3934830314356149320,1681465073218762214,7340822969453687689,-1307875721687945503,6536854822146405502,-1439894427261717218
  Data.q 1388078149074268264,-8026363569434593320,5408654863425110880,126776046647116781,-6390768288086531395,-6887121052124965817
  Data.q 6148917079385802639,5331274868357757121,-3573882490112309977,-6976446747823092093,-6896907700076830136,-1107752530626334770
  Data.q-8810371963754671321,1200680034685036318,8567736071173503084,8060304955781715092,-4123390149816451649,3855630933138370075
  Data.q-3817476086498239315,5267775709546641610,-504896150489358023,-5134993185104731165,-6287198452206608440,-1225199807146591077
  Data.q 7326259246654537591,-6945712312404710333,6209247271943527021,7724228472341239411,6908171244044884431,8249270409187920365
  Data.q-3168506116347613851,-3513500638571255996,-7669196192015515528,5328769236835019917,-2482259117841371924,-7465490562756386102
  Data.q 946165709353619857,-5819973726957269307,4384745906744631086,-1592429773490267799,-2273063546812396089,4440967251182540429
  Data.q-6012724663900980752,-4155362025558931245,-684807697630906890,3809272172839135193,2523929495603470710,-5920222844472365327
  Data.q-7136439312489127717,5576570560620929453,-2669312445526427158,-6717787208168108949,-6136879680936747927,-3644136334732915692
  Data.q 784657427758623089,6385054330218302337,-2153929121457557179,4662273003544821514,3955878138406093816,-9187765878711649318
  Data.q-8012556911389555441,6567837771468091370,6630887458958541137,-100452477017410431,-2488415301241284272,4244917262870694261
  Data.q 4343353473385196613,3340313674503873047,676318893556561085,5388567912878466442,4704465774140434559,-5119127165189547743
  Data.q-2796835759652839890,5005068975050318045,4228267551473773275,3009875300342549803,-4416901730948421920,7980762028814122156
  Data.q-1989292728678914715,1382990636823294756,-7020289101572866942,7489888000915960877,5414938611082072778,9172667399672121481
  Data.q 7285441508355328250,-1315540728980248530,5158343248282898925,-2266986889333857941,4873675252087409783,8784640792887481942
  Data.q 4079222788728004387,8852340345993483873,654071446669165828,-4919096314106991634,-2191135073423463045,2030098746930010935
  Data.q-1874801812212099314,-3282046368243921013,-6347261687704880653,7467005156402245370,5311311285941599204,-6780221380404765716
  Data.q 1254502175650644570,-3352968315949268203,-4876913932237028848,8475052530493451253,-3659611553250850346,-581427050515747242
  Data.q 1892221616202385203,-8666724967995498924,-3719597228607222547,-5495254405335817013,-2231840635151473757,2474905146954868964
  Data.q-6412272475201472564,1003888892926800562,3111516594824835447,-596603877757083906,3721042678052468229,-2876892451339079041
  Data.q 8588726979680106410,8001369685048866629,3739862371911057633,2749010941388602994,-530466900102421657,4094501163077155607
  Data.q 7605146439462242889,1063228898021430858,-1457864541949197091,3546097613118732526,-1478477755672342793,-1696294104545896093
  Data.q 6721896813154998709,-6104094163491039820,7091284146846675145,6825849022037918986,5917027254722837656,3187998902091678922
  Data.q 1516511234055905500,138831056092525191,-4457083979988725278,-1881056427890841421,-8473701341088716308,946231851544124506
  Data.q 4779376915689250445,-5528870296948632576,8945744781146032619,-8023640961896427705,-667180289782405191,1744257933647139546
  Data.q-5048643686521450272,-8485488145145513497,4615927979138115594,4646298733235805281,-6315901020427722540,-3604639291447723097
  Data.q 8799518231665072751,-4644882247580635724,-7580925344025374266,3050530654903565101,-4552611162246018261,8595933081373337288
  Data.q 4130908310573353375,-3307488385115040282,7241382161848320230,1770431152165861005,-295138122524990121,3899762468640315355
  Data.q 5498116078792309866,-7051479607924759562,933535439529284194,-8782857981171805229,-1849511273018920138,-5435448465824802806
  Data.q 6890464306095583460,3623033618871962185,-5885321188059437032,800432467414294011,6996636792518384115,2564862711023511135
  Data.q-7706189500769576730,-2527601210082688453,-3420394142523387722,-7635430435505567756,8115395871138120258,5194427473742802666
  Data.q-1693617471565802856,-6849458437298657048,-1458242212215701911,-3110627662849587789,-2440738665523800768,-3501628809380135028
  Data.q-2418645035179698402,4222388085895751740,6324930587042179701,-1527020326773549621,-6481195564736172855,3944531451723295125
  Data.q-8739022279019061445,6438275459486681360,2785135168048561019,7103955009201894774,5412039986509166001,445142185033437989
  Data.q 3602829987813067932,-2887368722264268229,3420648524657556318,442699165544642170,-2341506745949365623,6233688564441480383
  Data.q-2350800724542475456,8625145001025417426,2786157462639133530,543808957733025450,-4079357018467911937,-1816397643700551162
  Data.q 4078762489130118317,4209807630902675326,-6009584616614461949,7484785684235976216,-1244289815536702470,2447887381683505180
  Data.q-7975361475336578371,-1397256098550138184,-988031287445302332,-5180218204599540298,-8468591473195417886,-5210151265550766933
  Data.q-7844036002062423175,9080411242548783611,-3255300975310349263,-4764178371803045550,4369861526679214696,4670400550882679154
  Data.q-5303585464880301922,-2244182652444309197,-6426783432118664778,3429376313098541901,3862274713866255454,-8199209405952829845
  Data.q-6344449361251547210,6173879682983194240,4308183559719703248,-1554440573761216910,1603095273557568690,-8534709420385479960
  Data.q-7371645292125902355,4676006862238846771,2195009551799339901,-1034019945645582515,-8090246481435227246,1225463427709257122
  Data.q 9182820227594072186,4081612603334089723,2997095067684740311,-6221249965673016930,1814198501451784994,-6842329676041881328
  Data.q-7039167748403491356,3942159366827078965,-676023830430165902,6718155321114933203,9168734774126532721,-6941141203686681218
  Data.q 8127419111450097432,-3240635336414507448,6058084084064670268,-5645537795514150143,-6437472093193157100,-7924456574958507355
  Data.q-87001126765343927,-7328047922954774550,8705206536115535156,-324945543573691537,-7328751898720284825,8797316191899397466
  Data.q-3270084110823225519,-4766908378191106988,-7194136464338767690,1396706357111196824,-180320612170407798,-1105833218534433931
  Data.q-5716613440339684573,1537228616416809833,3643259904154969630,-7596993515063014344,-3568157009179841772,-3038287224704779876
  Data.q 3402344584723160312,-8289729073265845667,-8571009372904604386,7943593364899512207,4475683263508221468,4840878472862933709
  Data.q-1071132291503371516,-940770942345895747,2179618503520059760,1169585263905029019,1074151008336011272,7653057355620408439
  Data.q 5685640278445611476,5344164429139214618,1474540534679472131,9216669744312255754,2816438706376690162,-6873596164435241943
  Data.q 5800024854082059877,-8627175239356650275,8204550300976946977,-945773930621999197,-3120902812963090029,-4624284267005428293
  Data.q-8650542497560533264,5609626699181845047,-4470305336429359477,8216411832415270410,2867858997730810296,-9122023896097445386
  Data.q-1183441351693260603,3522543799808131420,-4992218621564365467,6911892210283407805,3978682637465950023,-1826548918798004974
  Data.q 8443100266010025715,-1388028743077814611,4104700252689975984,8864854605466621237,1824197760547564431,8852733954796169645
  Data.q-283038475600478041,-5090002304345920864,-8504031104294267534,-1084726769563601518,4728846652937234329,-2084230646480625232
  Data.q 5124544148156391391,7556864776290672075,3349016975764443236,4562133221941177112,-8932304881381575427,-2779721831325205697
  Data.q-3245879701174815182,-6801447586966248655,-2373721098465904896,282948013840742913,-7086426122003486432,5869045470277859551
  Data.q-631429345016723450,692725016354877148,-3743721942460197963,6226863220663992223,2393757428722553283,3470468585057567358
  Data.q-8430077504428850747,-4796795482050903910,2681279169388427077,-7639936205442875835,-1679322813676512169,1600035122073663569
  Data.q 1049715351013778637,9099537674125667648,2686373513279583250,5653104866327837390,8064498952557079979,-4130182730663699984
  Data.q-830295802695314599,-1504510190544967711,-8244082835382788850,-7650493959354644370,-1086122516638351956,-2552723800607282218
  Data.q 8278894147954397966,7066652827959925402,3312668125323177882,-5362784887293985881,7330379082306023046,-6996173042211166235
  Data.q 4595740493271813400,-472642950746753025,7590607601626705807,-6459204946575556201,-2634827105447587513,-4443691839359128788
  Data.q 8878263010185398677,4442892581323359396,3653591773183702397,8945629047474758241,-5895190106790867464,7657746973511450399
  Data.q-1830908558276871882,3408049482083615952,5531607136458560993,-8336763218773131560,397130162660693135,-3924560183101437941
  Data.q-7355233146459233733,-234416068292372488,-7171140735809437737,530403409986638819,7957417157859866802,2087967393666573094
  Data.q-2241445888139675794,6352600528416736021,-991822937170981837,1383551593174039496,-2380222887378799398,5030930207128606503
  Data.q 3833887974264760484,-7058795898065454588,-4296616804964478645,3902747086280814831,-5439995109681888237,8261084454372322967
  Data.q 7189307614419668947,6941281723633590248,732266976181322946,6869599712544119569,-8615786318676204889,-6139854738346876619
  Data.q 5051502619235475055,-6001989759579276618,3716378626030392918,-762874980162818867,4501169446582196199,7668411853033523496
  Data.q 6513727333330201940,2777752280562482418,8207040827221239301,6157230600680462201,8639476673690294937,-1951009828996798555
  Data.q 7558148181525678869,-3002216932403077750,1985690403557062445,-2252980461068256354,-3741891774944723173,-3026160500722181902
  Data.q 1482045426221545147,7970437889895130724,-2351141545325950233,-8512229780224004760,8358982883419546451,-2757569762710057648
  Data.q-5252048854068749740,-5358213082194067505,-6479394790915426095,1509950675057579740,2549991050946252705,3276522135980551240
  Data.q 7751790941940456461,4801132422983760498,-2488417088348816068,5308197853000829082,7364306381282242729,-919632591496208508
  Data.q 9022213461131188550,-3539292882319431334,7498184945005633193,-1440581742427161834,-2006591593269335078,-5234451827642511219
  Data.q-3573830613532705242,1452865528079377724,443632642304406657,3271328535039469189,-1324951265280180486,-8352981898833458887
  Data.q-6084923218748359136,9200820718848207592,2171976140734704637,-2056593450482039976,5375337750038920050,8534851705482735683
  Data.q 5121142533714941408,-685605180786480434,7337490385005489322,5695057817369189224,4096218912435122088,6689883868030617951
  Data.q-3822149538904554757,6284381096723827192,-8301824142771602191,6293596000069380644,8446139037350075335,-7875358997691991834
  Data.q-511940180423625529,4442717655343362799,3665559194298927362,-3606683627220921881,-4678215672807829689,6427500777863782122
  Data.q-7833583590683624211,988218426033190182,-1853880116525936408,-2126106618617915328,4090626166369723729,8077788999547755344
  Data.q 6780035056774077503,1932271957176810656,4312861024513889299,-3047464920235968159,1024317729341915245,-6188341021358866278
  Data.q 6267651196719299590,5211595635192191878,-635627233073015499,-8217522996035191842,2098100127880204491,-6056431159317444935
  Data.q 778892346322772679,5992853931833198241,-2814962250499180659,-4908131452008382039,-5362685769865512358,7849593261386501965
  Data.q-2748936164183769232,1660908433539013593,4751016751954265037,-3890052291111465861,-6941073687877520104,8234555123130696520
  Data.q 7183591060439297803,-6723751175709020473,-7247679327459696117,2109128196051856567,-7852844843590301099,-5802209886422031269
  Data.q-8291304922741951683,6160464396512932633,-4933064369277867407,-8793680064442224095,5997306950867007148,8285866401389354170
  Data.q-8193268842881943985,-208474076731216324,6741548887528371149,-7615975318884625581,-6058745052801500536,2484569090653861706
  Data.q 7717561145348566350,4257547701939787241,-3321555501222736154,-8235120023191184735,5028049689600769979,-7366552827654934977
  Data.q 2474038398632108189,3808926185309184520,-1382937583040391097,-4003775358816282704,3811445681060443536,-2596612594017496577
  Data.q-6073883089654850705,-9212992416858149957,2961064632031405193,-5588591353547884456,6054566565816179462,-7920920343354678767
  Data.q 459190508058855808,-1374151148673757615,7278244167066335876,-4643272910374995491,-7700204318539405591,1261780774472971527
  Data.q-1175335191252835755,7055730354416123199,-2560543401024587716,-1873013116275964815,6111556027954515249,2948603866877792869
  Data.q-7311712509780975866,4103788179663650660,3806570531785165999,8868683850384377986,-7757914076247256332,3778450264346983511
  Data.q-8780724521873794771,6019510725541242074,2254000967002466309,4320462194968233517,-1406838727472446645,166724602677406345
  Data.q-7810018979051891165,5808293844247063448,-6424865615425202772,-1707417726988523806,7977984180224850536,8293998040975317234
  Data.q-7980925139008756251,-1449496023293899995,-6570071637870531114,-5124981039315595437,4168726531018055316,-4865445496679524692
  Data.q 4167347729868567701,-4439344035406197451,-973730007404246451,8076906956477259977,581602925042289185,-826541852097022412
  Data.q 814916053320489393,-9160497025036118418,5987201126317097489,-2664196858422422317,113984109116420578,-2584439671693542784
  Data.q 329379815644285396,7453110475365784077,-7526870719831617242,7595362471072074899,4618207845904849216,-8709459788317202507
  Data.q 8141010102906157860,3689564699518896165,-7076221097243753535,-9136168946970200261,4550970701129405784,1060708626380738939
  Data.q 6240089199863884298,7066974780060063870,293578967922037798,434583563904085617,689390030938623555,-6761057015626922852
  Data.q 1981661213634708468,-8726557191980669787,-5419681740031250755,-7052019852423316964,-4146280587094328301,8401236588511982023
  Data.q 3491339098862515031,3028426513955992419,-7238146786574598965,-4641232548127159150,5819530547554759940,2698982002280596368
  Data.q-6440665511734751924,2639300389930642004,-8470025204873502681,4367008633808496578,826457650513588392,9035950070931360361
  Data.q-8037513500554181424,-2494951411430842996,-3414165834578914341,-5383128815640470682,929110695172158563,1071604458173873075
  Data.q 7577350821939753242,3762529202036892728,8719672702550456383,7195304709274955008,3872433538284943070,1951212917560409482
  Data.q-8783186991975430652,-6795472159025805092,6268699019426440087,2525117302439488041,5976932395227284637,-5367396321689238229
  Data.q 5567124532324641655,4208945002190540109,-3414673870477934528,1624861158589541377,-5235113173769072160,2226304981605268708
  Data.q-8568330344548875154,-6076207166310215471,8081776981447967274,-4423551193096036924,8400616177883307796,8560269879200552855
  Data.q-2138252191721704903,6410445036136976987,6981127818687965317,-1658945000219387486,-3211048460455165917,-3237615732551247736
  Data.q-9210703631710979137,7863431582168397387,9074203341345738610,94312792515504137,8554730221302749288,5213782571831486654
  Data.q 4177756414012187864,2781579748827692922,4255346147832595387,1709036617064571505,-7859581130600153027,3891975207814156957
  Data.q-4226296729493245422,7535281073704976310,-6880650251790631486,7988266751340116235,-7035393024655562993,-3110618941514933912
  Data.q-5423212150895581020,8495604236599335080,-2105062357864262067,6206688820130584479,8392901668898951807,826283894714557507
  Data.q-1972776683692173814,4401161347327629171,-2432661000815511912,-1209432601734297296,8938894729236149353,-6515417627120293660
  Data.q-6206501073581947972,-5836925803896040717,7860765397894600823,254750570501754121,-8875757508886766715,7926552026833303406
  Data.q 1398848009525530014,-2616097941563559983,7043370943971209398,8575771245560322215,8398730690822462128,7791852843195784142
  Data.q-7577107458414802532,2834632165252474016,8997404229600684046,-8852903474161599758,-6156218299219129960,3416623886110769451
  Data.q-2553042589031252111,6098032934023021426,-6359558153876832131,7729806199989962448,-5110449480777206387,-7043075076964921826
  Data.q 4021725685568813152,4359383911987671819,-7327142857317097290,1784728541230471708,-1968337415010494244,744196952330283108
  Data.q 8799140402334909513,3266938241666931302,-5108518985706004921,5276813007149961393,1432768185717854979,171601169093634386
  Data.q 1039433483017636116,9211859389531853348,9075707508860588308,-6720873127794649831,-5373116133937486399,-1327331378272441419
  Data.q-1807202873456785267,-1035048754445381332,9029790314292420376,3680953276995987964,942498803627162424,4850340956676673073
  Data.q 4523305583650207295,-5702821373622991067,-2122719631404703765,255712974632903315,-272191468002007706,-5837234124753695440
  Data.q 5507377467337385991,5644115311826371102,-1307258127009325603,3966573056709999778,-8799978379680647299,-6785646471139979007
  Data.q 2606927720922536040,-5153284440389601172,4064427651186421145,-1482365504093222984,-719970796748998468,2876254133554886088
  Data.q 5514844267897752232,-2417646154393016024,2740654420715822813,9210995227465941082,4371403205643888991,-2629479712492156712
  Data.q-4189413855784148314,1022054897761149181,-5478312465890469713,-7847628907623258409,7809065593033764406,-7092008494205347824
  Data.q 2804023099861096960,8212630805134148579,3703426832747763920,-1141688094447544007,2975764127574212321,-1315381956527958387
  Data.q 6395647334751673761,1452285668133940243,-1622386670984485721,6693567102679339567,-2346414691353279133,1374878915244323720
  Data.q-5903814396685753124,-7356988100462489080,-5616173321932830135,-5656269162358618933,8255349553726382782,-8861232619168245598
  Data.q-7591468240478368499,-6512333589519364186,-4982553303479578334,-8871265552683417729,2956224726976154779,-4921406154224095672
  Data.q 4211796080713985911,1020800382096666120,-1030022833248786270,7613857979025904034,-1683711866797937781,4570486023241359803
  Data.q-1317919293404509799,5383151661635843516,1101017793377505949,-6414009690893879412,3100664381608441224,-4989270640232680876
  Data.q 1460414316407752615,569104940555965172,3635109093505157071,-5733617567685021736,8576764902727673564,5051021101589700800
  Data.q-4248884807224032545,125244733078336509,-7681759444775976322,3059624841578219584,82616071416936089,-1682567405709025156
  Data.q-4273183577811516668,-8154712408796748751,8234046360697366084,2790471056905080533,6615151507789339077,-1954886768918572564
  Data.q-1795326817989756209,4942134222406788419,-6582883969326831024,5077387738318851093,9136877850012652419,1247007995883610338
  Data.q 7079323906741248862,33509503172736980,-5630751782845588870,-7391288731741993515,3131144353516890176,1839478818356721190
  Data.q-4206994822037771630,-1982951441074347489,-994579632768890237,-4392051627443205604,685220119778708638,-2897149551789324956
  Data.q-787193532277746701,4679825387730271957,7133262519999738736,-1888457689893337034,-8690751966883482752,-2933128420809023380
  Data.q 1273528262083795459,4800290960480060268,-6781401554293697049,-6072842157950647076,-3302199450376947026,3937229137487642129
  Data.q 8845630341810979876,-5152192163642884560,-6365735458279802739,2477736616087258142,1430566356101587545,5982485425795369980
  Data.q 8484420882044594349,8488555658363746766,1711570786404449334,2224883764125159356,-1684638085377108084,4618554549283038262
  Data.q-4251119617706744590,-7989860332267421828,-3211054896469807060,-7760022409216475081,-8799619853743950969,5564577192202247463
  Data.q 1644883129244098838,3618129244226291021,-131015469659300865,6490017873678385015,-7457719797504734651,-647170666119823881
  Data.q-4395081844869266962,-7093666631109446542,7870772263265131149,6935403573320562634,5831250145906386522,8352288233612403466
  Data.q 8718587266130078044,-2179095967530390672,-2100087311772360294,-7263446651293346921,-6917492486847346180,8633596447284764113
  Data.q-3059648625939558280,6546474086596732389,-3645782761689967014,6786668240738977180,58062259773473996,-8958706988133742503
  Data.q 651952825969975389,8098823570898780368,4023499937506334131,-1060752782240756300,-486562454909894207,-6340048956633755703
  Data.q 7909314802611884531,7255600694602300136,-4931619216134770752,1442267883045829302,-8713929590331337183,-3732694141130912227
  Data.q 676600324589515665,7090497829794891380,2245230494388890171,2816732840303017357,2244297018720530423,-9165493501049370510
  Data.q-795741705521681099,-9167113051806034924,100383912554215517,-7292128152070624287,8240909030896595761,4875824628203859113
  Data.q 1926508842626434636,-6094661071665760779,6724398122802661779,8159653988737011037,855612678017303778,-5654930275797176244
  Data.q 136801316864123032,-2051677904215783483,4619346238372037924,-6682041258921557006,4296802344805700656,-8768471623027172209
  Data.q 3711794697385755756,1211822948535711950,6727636997546707475,-8378635828498658279,5487417001649750144,-8415096680203782376
  Data.q 6353478489052683785,-1631377660828495952,-693632204075476847,6965369943190557767,-2422666312562939636,-3605368033098743758
  Data.q-8665350241109540859,8363872138805742433,2331871697985924824,-414566921667505072,-8336866216611639343,3934824823259898316
  Data.q-1244170234316330043,1596802738020584378,-7588584275927932416,8555791334776847905,-4638699076171367937,9106492682667607759
  Data.q 395775673235472445,2502380913861308832,1228801779007556054,-3519740656903465257,8958827894978065305,5481576997649857511
  Data.q 1880925134466371703,430657857044379674,943070490886390043,-2413870636073692764,-1739460991308338453,9018519253038456181
  Data.q 3703207523337472709,-7634657281577504665,-3361897238701394276,-1929925746208224072,2752840144685163885,-7192450647874702800
  Data.q 7377993867728229415,4488634917740748089,7547058356086598559,-7717693185473531452,6326817878830631507,3564829110270329738
  Data.q-1887201947077934962,2865042496133422324,1432616193411111877,-8001335104905153018,-9167683958359585560,6607940782964639687
  Data.q 5254422836041157000,3481904880295680709,-2897566423810886203,249971642769733310,-1686486871563549460,-2521332924589380068
  Data.q-8004087081890620411,-4682933580832063183,6543844408968006623,9053461402282942177,-5025959899456888487,3305659308253077719
  Data.q 1759142317689049539,2900700437193889303,-7478832698809007392,4701197782764584016,-7797449609879599273,-5571738768103958327
  Data.q 8936278755637392050,-683356238108483641,5565744764111483203,-3346131665476614608,3735176712130805704,7090962145025549858
  Data.q-4449284809588607237,-1045405823044261351,-1451305268588043411,2481754011698753376,-3630122030739106658,4606046222665059495
  Data.q 603555246498316916,-2242698662822573191,-3594004573364625865,-7591692539686220987,2760283310785604184,-396449747717253997
  Data.q-8560405204262281261,6306568391693070438,-1501627966169709151,7808345962566885377,-8210405733192563504,6916192060277373464
  Data.q-4486948069717658538,2328633886545822031,5567348035063750672,-1690667925848460975,-5041636637778611686,4081251426381244966
  Data.q 2113355672280924066,5787592626551577788,-4270656476555917231,-6065247035598755394,4897014313208785578,8788182941354567077
  Data.q-5763460585512847680,-7833796336897613523,-8583571658025919100,4039493072179597848,7497599751833284121,-6780834204561478796
  Data.q-2699558810573148256,221046099854966925,809043671317730273,-9105035456040139023,608429765699327550,-3192128752398306747
  Data.q-172590749664430513,6570625507576857741,-8763770153669981002,8944044528885029936,-6643244496444481667,-5869818737986353676
  Data.q 2097865245492113574,2794232212085879813,1695030189893893658,7909099106038954078,5335842877614391175,1221110138818394486
  Data.q 7016794731791567297,8394264828610019432,-8723622305637669531,-638014819555166616,-2450516895719754719,1176487084717165983
  Data.q-4031548477228734172,-8655363794089547748,7533830654054585512,-1661762787623858125,-2224501635980269917,8085713172694057510
  Data.q-1511891521434911230,1390716322635644576,-6995260734862660523,-3721624552391804099,-6277573745976797493,3090743507747879035
  Data.q-8093060856557827820,-2795269484554705790,6402158870827873908,-5563367497462598872,-7950030301881912622,-9039878070631780640
  Data.q 8084281595114315586,-2724480444499914185,-908353278866702369,4911364979634840040,-6611153470188380298,-9093572246146017219
  Data.q-3248928216487216860,9031943048031206565,889001213604455670,-2662887359156089504,-5440115871346834161,-4023751499613709219
  Data.q 7641035136770385503,976922442139426502,-7186177245724153870,-3204403151429325530,6770686774578567417,5550620916855565948
  Data.q 6453627449561514432,5287848132566919839,8457011342631839305,-793785347114437291,5084763837886565649,-5218926189077135551
  Data.q-9121206321339990305,-8467084643913615231,-7849132235032229201,-9043791552025476667,907946525600851035,924787241904042247
  Data.q 1158782805067093624,3429114263546140306,-215606207781282209,-3792907597969738748,3353161676390245460,519636755483334383
  Data.q-1757528443975171860,-6981233185368717004,760416208596152700,2537208384314200501,-1764361731574764888,7735876130460541736
  Data.q 5392945476143358459,-5152840207748768838,-8374753900140106445,-5906383927115717083,2672647339610025316,-7402413110272281016
  Data.q 3946572704012076840,-2655910631947132585,-2750383249334639203,-3660225204066019,5137293477919924700,3222071097763386489
  Data.q 5662564809772303852,3352620307748489747,-8682411786390006119,5533417719163669606,1113809798236772649,-1441503999116011081
  Data.q 2712792108832595647,609324117713479051,1246661838072720926,296964629848198765,1881011819098087719,5269708633770143378
  Data.q-2221266684178725768,1645155919663704608,2543399084865350042,2763075127879528974,572047863472057389,-2073223063650248828
  Data.q 1015764308856975244,-7562739561840935501,8039679557076947815,-7188745066026996370,4076848397427313251,-155836501078195502
  Data.q 500686367245146984,4249913362661697720,7523058154893931198,5180848376874307542,-5643700479715849442,7349787863264707801
  Data.q-8424106492749183677,-1374070761934897971,-5048962209338020628,1018417867340574331,1831350201146308535,-7391967813379506609
  Data.q-7121308857836451220,7484687631706968932,-8884632407778156932,-250755326420050743,-5218448301816991715,-4450524947010454192
  Data.q-7988081128652913333,2729127663546945770,-955696150904692077,5217088739865884938,980510449811463578,2040643685476154783
  Data.q-5563185953401708641,1035368689818373035,-7906472796289691675,-6583790908954107866,-3139979769313060060,6436028969579167912
  Data.q 7959408975408750217,-4944408189445222049,-2750057713838164221,-1625994208551002466,-3297008238855332129,7666937404591518198
  Data.q 7342704021736606482,-3040225074637329239,5163224494046518855,1275579366422619442,6027642469454549528,-3354383064370083386
  Data.q-2392792375186309884,-916945946170626047,-25378573181713863,6075757148062612339,5066295850475513534,4290092720380046696
  Data.q 8046908222216818331,-2487859059762783580,-2804630081509560497,8129891596572284860,6191192687647087921,-2628086421500121058
  Data.q-4384117164791624163,4250042297702285071,-8851987542819244621,-3610970788272769244,5519325124359044557,1985335295136767718
  Data.q 8883353828366404882,8655364285073587128,9114414846946833376,3253870625559471647,-5066994086494482331,2028989422065859558
  Data.q 2549295256327826185,-8973996674932537490,6484180506589660487,-1324977555476104688,4135759531677528173,8748671510058393368
  Data.q 6360417972042501324,-2954968736669428121,5896477568445926379,5432763531866379591,-1362047443159381564,4804498112410486596
  Data.q-8462142736982484225,-2634979021396073498,-1009563098778075718,-2668306624965892583,-7313455740858645373,-8065037485618942007
  Data.q-4500576852044321044,5759493946228559462,7139728780223046967,7835873283387612433,-5236991489969183206,-5140511822367287933
  Data.q 8961785000493115193,2989237933756032689,2700766487653907301,2261763532058873092,-6393180560056652294,-7974608968846121736
  Data.q 8050144602325051901,-1940181477732975681,-2610241389744224526,4345632945712879619,-4982663038690278786,-2563191042279744288
  Data.q 3189483814645107600,3699724387770902635,2636183236531885801,7325083919649286418,-3038439004170321959,1326836599026483157
  Data.q-3957002906911819529,600464349440211849,-5652648046538118354,-8275765321290949601,4764549687494383727,-2738035415664768398
  Data.q-4489705238749273855,2932750750764512931,-1647151595024083039,-5891613673467549207,8926116207618809938,4882024118588653039
  Data.q-1210120955908823599,4209426962678906088,7077637283897967800,6911945358174753824,-5745892470950501618,8463681167397017895
  Data.q 8132549083336343429,-6658732042234110478,6719834221980728593,-2699736000862128886,8199670193792991486,9191816008797264709
  Data.q-1262488531178109954,-9016000236394137124,1362224007417227193,6796704237723795075,-6679709413242039360,3442998019067365263
  Data.q-5214183147981020161,4687205139726956471,5910071119271676481,-1663100318213796820,2360312160298107112,-3842993610731813751
  Data.q-2694130665461298486,6302321635767430445,-2027840909248409833,-4384736765012236585,-5278999652349761176,-7837496009890690550
  Data.q 4784482775376840143,1162063392423765239,1500939686076571960,1859444773640865003,-2272947693259427911,-5213521991623860780
  Data.q-2181608523802281539,6455904971707528076,-6217612050050679629,-8659030659529450381,-8743531524175210644,-7218783950393082847
  Data.q-730696203381542839,-1045787670291856064,7183763311451641797,-3522986496206687673,5323894655518879378,-8923790076743096135
  Data.q 3825544493991588781,180208361567948056,-1878305133201787851,-2701328932294511991,3056443029593470772,-2359835573095914889
  Data.q-716927295565625088,-6009123898880883315,519588202547110766,4482323295485871265,-4837350257773918790,7176158171324982775
  Data.q 8475094489180262678,3835253121069973751,-360387944177512455,6459601020334990321,4066236187103372489,-835792855229909049
  Data.q-4345825317578183052,-3055350979175269646,2141787351534051507,-2659878768183921030,2662460299152569560,-469655446248149490
  Data.q-6455409571549980652,-7338600909281997435,-3417543245833270234,8660115019456723700,5082610169138369008,1746434004857327202
  Data.q-6406737513767964539,-3116381926073955989,-3015797827500577844,-8189854217184659339,7815232404888173661,-3680890111802425104
  Data.q 8921664894716461321,-4670806274523652469,-7036133579310863238,-7411123535031921670,8667004115937199977,1658985427377309411
  Data.q 4905147933167277468,6447509078424262507,-1120038602348704468,-374644093989013625,1700026158605611074,207050975084769897
  Data.q 5595660749811827839,-832287525527719779,-4543717638642573295,161032635200368942,129024152128649929,843452036225321521
  Data.q-883710243914836715,194872926783093710,5840522549109825887,-4295715601363007639,6654219464247730525,-7144517595601033772
  Data.q-5420310618233253319,-4482495016069331872,4212188867945995850,-7130819036868584738,1332114586858928050,-7312698597235165283
  Data.q-1932655360503275812,4584409316777211811,1371780216208934807,3672025287965820504,-6135379145668799758,-8471729781080478548
  Data.q-7652529554004457610,-3660005782443823564,1447358697655016786,-3588678986364162579,2526217812555969139,-5666420647769367485
  Data.q 1843514830721992678,-1157911311669449826,-5211259635827241464,-2232366671725217058,-7977826559915279037,7916090246768774353
  Data.q 3819982729989986793,-5496149156119548699,2709954767008512718,8987256345788205538,-7504235058260848094,8846346219618887918
  Data.q-6560348660786769798,3563607607974073527,-6127416643028409437,-1028574824837122657,3059424487820436464,-948827910850176308
  Data.q-8057879869849878775,7606191324354760939,-2642605310599546233,8155623542475944890,424867487799636944,-8422857622549677315
  Data.q-3484692398709164251,-2879224283671015482,6036416541150498094,8906474291916041262,-8715279733546282166,9137761857920547779


EndDataSection

A+
Dernière modification par PAPIPP le mar. 21/oct./2014 14:21, modifié 4 fois.
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Mesa
Messages : 1092
Inscription : mer. 14/sept./2011 16:59

Re: Quelques Rotations d’une Image en 2D

Message par Mesa »

Personnellement, je cherche un code de rotation de photo de qualité.
Quand on prend une photo issu d'un appareil photo, que l'on lui fasse faire une rotation (autre qu'un multiple de 90°), une fois imprimée, il y a des "trous". C'est particulièrement visible sur des aplat de couleur. Certains pixels n'ont pas été tournés.

C'est probablement du aux erreurs d'arrondies. Il me semble que gdi+ est une solution à ce problème mais je n'en suis pas sûr.

Quelqu'un a-t-il un code pour une rotation de qualité (pour impression de photos).

M.
Avatar de l’utilisateur
raven
Messages : 222
Inscription : jeu. 06/janv./2005 15:45

Re: Quelques Rotations d’une Image en 2D

Message par raven »

bonjour papipp

superbe code,j'ai une question mais j'ose pas demandé :oops:
Pb5.24 Lts/5.31 Windows 7 64 nvidia 560 ti E8500 8g ram
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Quelques Rotations d’une Image en 2D

Message par djes »

Mesa> J'avais participé à un code de LSI (le soldat inconnu) de rotation avec antialiasing, il doit être sur le forum, en plus d'autres sur le forum anglais. Le résultat est très bon, même si on peut encore l'améliorer.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Quelques Rotations d’une Image en 2D

Message par Kwai chang caine »

Marche niquel, juste le debug à enlever qui fait appel à une fonction _n()
Et aussi un truc bizarre de temps en temps la photo en haut à droite se met à sortir un big triangle qui part du bord superieur gauche de la fenetre 8O
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: Quelques Rotations d’une Image en 2D

Message par PAPIPP »

Bonjour KCC

Merci je vais corriger ce _N(...) toujours ces macros pour 'debuguer' que j'ai compilées dans mon environnement.

Pour le truc bizarre est-ce en cliquant la touche F3 ? Car avec cette touche comme on alterne les angles + ou - x on obtient
quelquefois des images bizarres et cela dépend du moment où on alterne par rapport à l'angle que fait l'image à ce moment.
C'est un effet visuel !! bizarre bizarre vous avez dit bizarre comme c'est bizarre.
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Quelques Rotations d’une Image en 2D

Message par Kwai chang caine »

Bonjour PAPIPP, content de te parler :D

Bah non, j'ai posé aucun doigt boudiné sur mon clavier..
Ou alors peut etre que je me suis vautré comme une m.... la tronche dessus suite à la fatigue, comme cela nous est tous arrivé, j'ai regardé sur mon visage...et aucun "AZERTY" n'est gravé :mrgreen:

Pour que tu vois mieux j'ai fait un "copiage" d'ecran
Et quand ça tourne, ça lache pas l'angle, ça suit, puis ça se deconnecte, et le tour d'apres rebelote 8O

Image
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: Quelques Rotations d’une Image en 2D

Message par kernadec »

bonjour
merci du retour Kcc :D
Alors pour corriger ce problème,
j'ai trouvé cette solution à la ligne 68 mettre K-1

Code : Tout sélectionner

ClipSprite(IMAGE2,K-1,0,1,hauteurIMAGE)
Cordialement
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Quelques Rotations d’une Image en 2D

Message par Ar-S »

Salut kernadec,

La correction du bug de KCC marche, par contre à l'image 2 j'ai un petit bug. Un trait apparait en haut puis en bas de l'image pendant la rtation (ça alterne haut/bas).
Je peux pas faire de screenshot c'est trop "bref"
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: Quelques Rotations d’une Image en 2D

Message par kernadec »

bonjour Ar-s
Ah oui j'avais pa vu :?
maintenant chez moi cela fonctionne sans tache avec également -1 à la hauteurIMAGE

Code : Tout sélectionner

ClipSprite(IMAGE2,K-1,0,1,hauteurIMAGE-1)
Cordialement
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Quelques Rotations d’une Image en 2D

Message par Ar-S »

Nickel comme ça ;)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Re: Quelques Rotations d’une Image en 2D

Message par PAPIPP »

Bonjour à Tous

Malgré mon absence je n’aurai pas pu être d’un grand secours pour corriger les imperfections qui touchaient le prg.
Je suis sous XP SP3 avec PB531 B 4 et je n’avais pas ces petits bugs.
Merci donc à KCC Kernadec et Ar-s.

Pour me faire pardonner voici deux petites améliorations sur l’image 3.
Voici une explication de ces améliorations.
Dans le cas de l’image 3 voici les 2 formules qui permettent de la construire.

X=Cos(xx)*Rayon+centre_x
Y=Sin(xx)*Rayon+centre_y
X et Y sont les coordonnées du centre de l’Image 3 (image seule).
Centre_x et centre_y sont les coordonnées du centre de rotation.
Rayon est le rayon de rotation.

Pour améliorer ces formules je vais donc écrire.
rayon=ray*k_x pour le rayon sur X (avec ray pour rayon et k_x pour coefficient sur x)
et rayon=ray*K_y pour le rayon sur Y (avec ray pour rayon et k_y pour coefficient sur y)
Ceci nous donne les formules
X=Cos(xx)*Ray*K_x+centre_x
Y=Sin(xx)*Ray*k_y+centre_y

Voici donc 2 variables (k_x et k_y) commandées par F4 pour K_x et F5 pour K_y.
Il suffit de cliquer plusieurs fois sur F4 ou F5 qui partent tous les 2 de la valeur 1 pour augmenter et ensuite diminuer d’un pas de 0.025 dans la fourchette de + ou -2 pour k_x et de + ou – 1.4 pour k_y.

Plusieurs remarques :
1) lorsque les coefficients x et y ont les mêmes valeurs alors nous dessinons un cercle.
2) lorsque les coefficients sont différents nous dessinons une ellipse.
3) lorsque les coefficients sont égaux à 0 nous dessinons la même image que la première.
(Image 1) rotation de l’image sur elle-même (pour inverser la rotation de l’image cliquez sur F1).
4) Lorsque l’un des coefficients est à 0 l’image en rotation suit une ligne droite soit horizontale avec k_y=0 soit verticale avec k_x=0.
5) lorsque l’un des coefficients est négatif la rotation générale est inversée alors que l’image elle-même tourne toujours dans le même sens
(pour inverser la rotation de l’image cliquez sur F1).
6) Lorsque les 2 coefficients sont négatifs la rotation générale revient comme elle était à l’origine.

Code : Tout sélectionner

EnableExplicit
UsePNGImageDecoder()
UsePNGImageEncoder()
#NomAppli$="ROTATION_IMAGE tapez F1(Image 1 & 3) F2(Image2) ou F3(Alterne angle + -)"
#LargeurEcran=900
#HauteurEcran=800
#NomIMAGE$="L:\IMAGES\PINGUIN.png"
Define LargeurIMAGE=0,HauteurIMAGE=0,OPW0,OPS1,image,image2,image3,RAY,ibf.f,ib,sensj11,sensj21,sensj1,sensj2,sensj3,sensjj1,asensjj1,asensjj2,j,rj,J2,k
Define texte$,texte2$,texte3$,M_ERR$,CentreX_im3.f,CentreY_im3.f,K_x.f=1,K_y.f=1,flagy.f=0.025,flagx.f=0.025,texte4$="", texte5$=""

If InitKeyboard()=0 Or InitSprite()=0
  MessageRequester("Error","Initialization failed !",#PB_MessageRequester_Ok | #MB_ICONERROR)
  End
EndIf
OPW0=OpenWindow(0,0,0,#LargeurEcran,#HauteurEcran,#NomAppli$,#PB_Window_SystemMenu)
OPS1=OpenWindowedScreen(WindowID(0),5,5,#LargeurEcran-10,#HauteurEcran-10,#True,0,0,#PB_Screen_SmartSynchronization)
image=CatchSprite(#PB_Any,?PINGUIN)
image2=CatchSprite(#PB_Any,?PINGUIN)
image3=CatchSprite(#PB_Any,?PINGUIN)
LargeurIMAGE=SpriteWidth(IMAGE)
HauteurIMAGE=SpriteHeight(IMAGE)
CentreX_im3.f=3*#LargeurEcran/5-LargeurIMAGE-25
CentreY_im3.f=3*#HauteurEcran/5-60
If OPW0=0
  M_ERR$="  Création non réussi de OpenWindow "+#LF$ ; #LFCR$
EndIf
If OPS1=0
  M_ERR$+"  Création de OpenWindowedScreen non réussi "+#LF$ ; #LFCR$
EndIf
If image=0 Or image2=0 Or image3=0
  M_ERR$+"  Création des Iamges non réussi "+#LF$ ; #LFCR$
EndIf
If Len(M_ERR$)>0
  MessageRequester("Error",M_ERR$,#PB_MessageRequester_Ok | #MB_ICONERROR)
EndIf
RAY=175
Structure txy
  posY.f
  posx.f
EndStructure
Global Dim tab.txy(360)
For ib=0 To 359
  ibf.f=ib
  ;   tab(ib)\posx=Cos(Radian(ibf))*RAY*3/2; +3*#LargeurEcran/5-LargeurIMAGE; ellipse
  tab(ib)\posx=Cos(Radian(ibf))*RAY; +3*#HauteurEcran/5-LargeurIMAGE ; cercle
  tab(ib)\posY=Sin(Radian(ibf))*RAY; + 3*#HauteurEcran/5-40
Next

sensj11=-1
sensj21=-1
sensj1=0
sensj2=0
sensj3=0
sensjj1=0
asensjj1=1
asensjj2=1
j=0
rj=0
Repeat
  ClearScreen(0)
  RotateSprite(IMAGE,j,#PB_Absolute)
  DisplayTransparentSprite(IMAGE,#LargeurEcran/4-(LargeurIMAGE/2),#HauteurEcran/5-(HauteurIMAGE/2));
  RotateSprite(IMAGE3,j,#PB_Absolute)
  If j<0
    J2=360+J
  Else
    j2=J
  EndIf
  DisplayTransparentSprite(IMAGE3,(tab(j2)\posx)*K_x+CentreX_im3,tab(j2)\posY*K_y+CentreY_im3);
  
  For k=0 To LargeurIMAGE
    ;     ClipSprite(IMAGE2,K,0,1,hauteurIMAGE)
    ClipSprite(IMAGE2,K-1,0,1,hauteurIMAGE-1)
    RotateSprite(IMAGE2,rj,#PB_Absolute)
    DisplayTransparentSprite(IMAGE2,#LargeurEcran/4*3-(LargeurIMAGE/2)+k,#HauteurEcran/5-(HauteurIMAGE/2))
  Next
  rj+sensj21
  rj*asensjj2
  rj%360
  j+sensj11
  j*asensjj1
  j%360
  If ExamineKeyboard()
    If KeyboardReleased(#PB_Key_F1) ; 3 positions ordre des Sens Image 1,  1 sens aiguilles d'une montre,  -1 sens Trigo , 0 arret de la rotation
      sensj1+1
      sensj11=sensj1%3
      sensj11-1
      texte$="(Image haut gauche) Arret=0, sens trigo-1, sens montre=1 sens="+Str(sensj11)
      ; Debug _n(sensj11)
      ;     ElseIf KeyboardPushed(#PB_Key_F2)
    ElseIf KeyboardReleased(#PB_Key_F2) ;;3 positions ordre des Sens Image 2,  1 sens aiguilles d'une montre,  -1 sens Trigo , 0 arret de la rotation
      sensj2+1
      sensj21=sensj2%3
      sensj21-1
      texte2$="(Image haut droite) Arret=0, sens trigo-1, sens montre=1 sens="+Str(sensj21)
      
    ElseIf KeyboardReleased(#PB_Key_F3); 4 positions, Cas 0 tout est synchroniné, Cas 1 alterne angles Image 1, Cas 2 alterne angles Image 1 & Image 2, Cas 3 seule image2
      sensj21=sensj11
      rj=J
      sensj3+1
      sensj3=sensj3%4
      texte$="Synchronisation Im1 Im3 et parfois Im2 Cas="+Str(sensj3)
      texte2$=""
      
      Select sensj3
        Case 0
          sensj21=sensj11
          rj=J
          texte3$=""
          texte2$=""
          asensjj1=1
          asensjj2=1
        Case 1 ; alterne j1
          If asensjj1=1
            asensjj1=-1
            texte3$+" cas=1 Alterne angle IM1 et IM3 + - ("+Str(asensjj1)+")"+"Angle="+Str(J)
          Else
            texte3$=""
            asensjj1=1
          EndIf
        Case 2
          If asensjj2=1
            asensjj2=-1
            texte2$+" cas=2 Alterne angle IM2 + - ("+Str(asensjj2)+")"+"Angle="+Str(RJ)
          Else
            texte2$=""
            asensjj2=1
          EndIf
        Case 3
          texte3$=""
          texte2$+" cas=2 Alterne angle IM2 + - ("+Str(asensjj2)+")"+"Angle="+Str(RJ)
          sensj21=sensj11
          rj=J
          asensjj1=1
          
      EndSelect
      texte$+texte3$
    ElseIf KeyboardReleased(#PB_Key_F4); N positions, Coefficient X de l'ellipse ou du cercle K_x=K_y
;     ElseIf KeyboardPushed(#PB_Key_F4); N positions, Coefficient X de l'ellipse ou du cercle K_x=K_y
      K_x+flagx
      If K_x>2
        flagx=-0.025
      EndIf
      If K_x<-2
        flagx=0.025
      EndIf
      texte4$="Coefficient X  ="+StrF(K_x,2)
      Delay(10)
    ElseIf KeyboardReleased(#PB_Key_F5); N positions, Coefficient X de l'ellipse ou du cercle K_x=K_y
;     ElseIf KeyboardPushed(#PB_Key_F5); N positions, Coefficient X de l'ellipse ou du cercle K_x=K_y
      K_y+flagy
      If K_y>1.4
        flagy=-0.025
      EndIf
      If K_y<-1.4
        flagy=0.025
      EndIf
      
      texte5$="  Coefficient Y  ="+StrF(K_y,2)
      Delay(10)
    EndIf
    
  EndIf
  
  If Len(texte$)+Len(texte2$)+Len(texte4$)+Len(texte5$)>0
    StartDrawing(ScreenOutput())
      DrawText(5,5,Space(300),RGB(0,0,0),RGB(0,0,0))
      DrawText(5,20,Space(300),RGB(0,0,0),RGB(0,0,0))
      DrawText(5,5,texte$,RGB(255,255,255)); [, CouleurTexte [, CouleurFond]])
      DrawText(5,20,texte2$,RGB(255,255,255)); [, CouleurTexte [, CouleurFond]])
      DrawText(600,20,texte4$,RGB(255,255,255)); [, CouleurTexte [, CouleurFond]])
      DrawText(730,20,texte5$,RGB(255,255,255)); [, CouleurTexte [, CouleurFond]])
      
    StopDrawing()
  EndIf
  FlipBuffers()
  
Until KeyboardPushed(#PB_Key_Escape) Or WindowEvent()=#PB_Event_CloseWindow
DataSection
  pinguin:
  ; REPRENDRE LA DATASECTION SUR LE PREMIER POST
  ; REPRENDRE LA DATASECTION SUR LE PREMIER POST
  ; REPRENDRE LA DATASECTION SUR LE PREMIER POST 
EndDataSection

A+
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Quelques Rotations d’une Image en 2D

Message par Kwai chang caine »

Ca va beaucoup mieux, merci KERNADEC 8)
Mais sur l'image de droite en haut, si on veut "pignoler" y'a comme le dit ARS des petits traits qui apparaissent parfois dedans
Et aussi une ligne en dessous de chaque autre image qui apparait toujours au même moment de la rotation

Merci aussi à PAPIPP à nouveau pour le partage 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: Quelques Rotations d’une Image en 2D

Message par kernadec »

bonjour KCC
tu as toujours le problème, mais Ar-s ne l'as plus :?:
As tu mis la deuxième correction hauteurIMAGE-1 8O

Code : Tout sélectionner

ClipSprite(IMAGE2,K-1,0,1,hauteurIMAGE-1)
Cordialement
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Quelques Rotations d’une Image en 2D

Message par Kwai chang caine »

Bonjour Kernadec
Bah oui, puisque j'ai copié/collé le dernier code de Papipp qui avait ecrit ça, j'avais vérifié avant :wink:

Code : Tout sélectionner

  ;     ClipSprite(IMAGE2,K,0,1,hauteurIMAGE)
    ClipSprite(IMAGE2,K-1,0,1,hauteurIMAGE-1)
Mais c'est pas grave, c'est juste pour faire avancer le schmilblick :mrgreen:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre