French Dessinez c'est pas gagné!

Discussion in 'French Forum' started by alea46, May 24, 2008.

  1. alea46

    alea46 Member Licensed User

    Bonjour, je travaille actuellement sur un programme qui doit dessiner le tracé d'un engin agricole dans un champs. Je n'ai pas de soucis sur la partie GPS, les Topics du forum sont largement suffisant.

    Par contre sur la partie dessin, j'ai un Probleme :
    *comment dessinez sur un bmp de 1000x1000 avec un focus sur la partie que l'on dessine (mobile en fonction de la position GPS), sachant que lorsque l'on va repasser à coté, on va revoir la trace de son dessin.

    Merci de votre aide, j'ai un peu de mal pour comprendre l'organisation de la doc et si la connaissance de Framework aide vraiment pour la prog.

    pour info, on doit redessinez toute les secondes environ....(message 1HZ : traitement info, dessin)
     
  2. klaus

    klaus Expert Licensed User

    Salut Albert,

    Peux-tu être plus précis sur ce que tu veux faire.
    Quel genre de dessin, lignes figures etc. ?
    Le bitmap doit-il être sauvé ?

    Je n'ai pas encore réalisé de programme dessinant sur un bitmap, mais ça pourrait être intéressant de s'y atteler. Afficher une vue partielle d'un bitmap plus grand que l'écran n'est pas un problème, déjà réalisé (programme Map display).

    L'utilisation des librairies ImageLib et/ou dzImage sera nécessaire.

    Salutations.
     
  3. klaus

    klaus Expert Licensed User

    Salut Albert,

    Le programme ci-joint pourrait être un point de départ.
    Il est basé sur un exemple de agraham et utilise les librairies ImageLib et Door.

    Salutations.
     

    Attached Files:

  4. alea46

    alea46 Member Licensed User

    merci Klauss

    Merci beaucoup Klauss.
    Je vais etudier de prés ton programme, mais il m'a l'air de convenir assez bien pour mon besoin.
    Dans quelques jours, j'espere pouvoir poster le debut de mon soft.

    Bonne fin de WE.
     
  5. alea46

    alea46 Member Licensed User

    dessinez, c'est presque gagné

    Grâce à l'aide de Klauss (merci beaucoup encore), j'ai réussi à faire un dessin avec scrolling comme je le voulais.

    je joint le source et le fichier de test issue d'une conversion de trace.

    Les améliorations que je souhaite sont les suivantes :
    *suppression des barres de scrolling tout en gardant la gestion.
    *dessin en polygone plein
    * si on repasse sur une partie déjà colorée, on change la couleur de la zone de recoupement.

    j'ai pu constaté que la connaissance de framework aide au dev.

    merci de vos idées pour améliorer mon soft
     
  6. klaus

    klaus Expert Licensed User

  7. alea46

    alea46 Member Licensed User

    Flood fill KO

    Bon, j'ai réussi à faire marcher le floodfill grâce aux bons conseil de KLAUS.
    Le problème, qui était déjà annoncé dans le post, c'est le problème de mémoire.
    (et de lenteur).

    Une petite question : les programmes compilés sont-ils plus rapide que les programmes en debug?

    Je n'ai pas encore fait l'investissement de la version et donc pas fait de test sur PPC (asus 730 et Asus 620BT).

    Une question : est-ce que l'on peu changer la largeur du pinceau.
    CF le permet à priori. Comment peut-on faire avec Basic4PPC?


    Un grand merci à KLAUS pour son aide.

    Sub floodFill(xi,yi,colfil,colpix)
    'Fill the selected area
    If xi < 0 OR xi >= maxsize-1 Then Return
    If yi < 0 OR yi >= maxsize-1 Then Return
    If colfil = colpix Then Return 'avoid endless loop
    ' call the library to do the fill and save the result
    Image1.image = flood.Fill(Image1.Image, xi, yi, colfil, colpix)
    End Sub


    appel de la routine
    drw1.DrawLine(pen1.Value,londeb+dlon,latdeb-dlat,lonact+dlon,latact-dlat) '// 2
    'essai de floodfill
    If A1>1 Then
    colorback =image1.Color
    floodFill(londeb-8,latdeb-8,cred,colorback)
    End If
    image1.Refresh
    A1=A1+1

    'positionnement de la fenetre sur le milieu de l'affichage
     
  8. klaus

    klaus Expert Licensed User

  9. alea46

    alea46 Member Licensed User

    bon, un premier test sur Asus 730 montre :
    *un problème de mémoire sur une image de plus de 1000*1000.
    *un pb sur le pnl1VScrollobj.New1(false) ' objectDoor lib
    (erreur: NullreferenceExeption)
    *impossible de connecter le GPS (bluethooth), mais la c'est certainement moi, car le pgm "GPS" fonctionne.

    Bon je vais voir les pbs du a l'écran VGA et à la taille du bitmap.
    ajouter la routine de mise en forma QVGA, verif du code pour GPS, optimisation de la mémoire dispo.
    Si quelqu'un à une idée sur l'optimisation du code, je suis preneur....
     
  10. alea46

    alea46 Member Licensed User

    Toujour pas de solution pour mon probleme

    Bonjour à Tous.

    J'ai essayé d'avancer sur mon problème. Avec la bibliothèque ControlEx.dll pour les scrollbars, car je ne peux utiliser la bib Door.dll.

    J'ai modifié le source, mais je ne vois pas où cela coince.
    En lisant les différents post sur le forum, je constate que je ne suis pas le seul dans ce cas.

    Les scrollbars gérées par Door.dll ne sont pas forcement une solution, car elles ne fonctionnent pas sur PPC, ce qui est très gênant pour le cas d'un soft qui doit generer du soft sur PPC.

    je poste le zip du projet dans l'état actuel...
     

    Attached Files:

  11. klaus

    klaus Expert Licensed User

    Bonjour,

    Voiçi la solution.

    Les problèmes étaient les suivants.

    1) Les ScrollBars étaient cachés par le Panele1 et l'Image1, avec un BringToFront on aurait pu les rendre visible.

    2) Il n'est pas nécessaire d'avoir les ScrollBars sur le Panel1 on peut les mettre directement sur frmMain.

    3) Il faut modifier les paramètres Left et Top de Image1 en fonction des valeurs des ScrollBars, ce n'est plus automatique comme avec l'AutoScroll du Panel1 au par avant.

    4) La valeur max des ScrollBars est maxsize-Panel1.Width et maxsize-Panel1.Height.

    La version modifée est jointe.

    Meilleures salutations.
     

    Attached Files:

  12. alea46

    alea46 Member Licensed User

    Merci,c'est gagne

    Merci Klaus.:sign0188:

    Je dois avouer que je doutais d'y arriver, car apres des essais avec les exemple de scrolling, les scrollbar... etc..., je ne voyais plus de solutions.
    De plus, je ne connais pas framework, et cela est handicapant je pense pour les dev.

    Merci encore mille fois.
    :sign0060:
     
  13. alea46

    alea46 Member Licensed User

    Et si je m'y remettais....

    Bonjour à tous,
    Après presque un an d'absence sur le forum (sauf quelques visu rapide), je reviens à la charge :sign0060: pour essayer de faire évoluer mon soft.

    Les questions qui me vienne aujourd'hui à l'esprit et sur lesquelles vous pourriez m'apporter de l'aide sont :
    * Existe-t-il un guide assez simple pour expliquer les base de CF, (panel,contener, picturebox...), ceci afin de m'éclaircir les idées.:sign0012:
    * Existe-t-il un moyen de diminuer le poids d'un Bitmap lors de l'utilisation sur Basic4PPC, sachant que dans mon but, le nombre de couleur est très accessoire (4 couleurs seraient amplement suffisant.)

    Je pense que je vais voir le soft de Klauss sur les Maps pour m'inspirer dans un premier temps....
     
  14. klaus

    klaus Expert Licensed User

    Bonjour alea46,

    Question1:
    Est-ce que CF veur dire Compact Framwork, si oui je n'y connais pas grand chose et je ne connais pas non plus de guide. La seule documentation que j'utilise est celle de Microsoft. Pour y accéder j'utilise ce petit utilitaire qui permet d'arriver assez rapidement dans les pages voulues. http://www.basic4ppc.com/forum/share-your-creations/3299-control-info.html

    Question2:
    A ma connaissance les bitmaps sont stockées dans B4PPC en interne avec 24 bits par pixel et il n'y a pas de moyen de diminuer la taille.

    Concernant les cartes, il y a le programme http://www.basic4ppc.com/forum/share-your-creations/3674-scaled-maps.html qui est plus récent que Display Maps et utilise les dernières librairies.

    Meilleures salutations.
     
    Last edited: Feb 8, 2009
  15. alea46

    alea46 Member Licensed User

    Nouvelle version

    Bonjour,
    je suis actuellement entrain de modifier mon programme :
    Utilisation des bibliotheques de Agraham (super) pour faire le remplissage.
    Utilisation de plusieurs "dalle" de façon à éviter les problèmes de mémoire (le programme réel, utilisant les coordonnées GPS en temps réel, plante régulièrement à cause de la mémoire).

    Mon problème aujourd'hui, c'est la partie chargement/déchargement des dalles pour le dessin.

    Dans la Sub routine gestion image, le but et de sauvegarder le bmp actuel (que l'on nommera par la variable dalact, et charger (si elle exite, vierge sinon) la dalle nommée dalnew.
    Mon probleme c'est celui ennoncé dans le thread
    http://www.basic4ppc.com/forum/questions-help-needed/3317-image-locking.html#post18740

    Et je n'arrive pas a m'en sortir!!!
    Help!!
     
  16. alea46

    alea46 Member Licensed User

  17. alea46

    alea46 Member Licensed User

    voila le resultat

    Voici le résultat avec l'utilisation de dalle afin de minimiser l'utilisation de mémoire.
     
  18. klaus

    klaus Expert Licensed User

    Je suis content que vous ayez trouvé la solution avant que je ne vous l'aie proposée. Et elle n'est pas vieille, elle date d'aujour d'hui !

    Meilleures salutations.
     
  19. alea46

    alea46 Member Licensed User

    Fonction search = souvent la solution

    Bonjour,

    Oui, j'ai constaté que je n'étais pas le seul avec ce problème.
    Avec un peu de patience pour explorer quelques pistes et l'utilisation fréquente de la fonction "search", on peut avoir des réponses.

    J'avais fait un essai dans le même sens avec un deuxième bmpex, mais cela ne marchait pas, car je ne le recréais pas à chaque fois et de ce fait, le pgm plantait.
    (visiblement la méthode "dispose" correspond à la destruction de l'objet...)
     
  20. alea46

    alea46 Member Licensed User

    Une nouvelle version.

    Bonjour,

    Je viens de faire une nouvelle version de mon petit logiciel, avec un découpage en "dalle" du dessin, ceci afin de minimiser la mémoire nécessaire pour faire tourner le programme.
    Sur PC, avec le fichier (j'ai toujours deux version, une Pc avec un fichier simulant les entrées GPS et une PPc avec le Gps), çà marche bien. Le problème, c'est avec le PPC, dans des conditions réelle : le programme tourne bien 1 à 2 minute, puis "freeze."
    Un Hard reset est souvent nécessaire pour faire repartir le PPc.

    Est-ce que quelqu'un à déjà eu le problème de freeze sur un PPC avec un pgm maison .

    Je joins les deux versions, avec notamment dans la version "file", un petit pgm d'assemblage de dalle pour création sur Pc du résultat.

    Merci de me donner votre avis sur ce qui ne va pas dans ce pgm.
    J'espere que c'est solutionnable.
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice