Accueil > Forum > > > > Dessiner un triangle isocèle dans une picturebox
Dessiner un triangle isocèle dans une picturebox
jeudi 14 décembre 2006 à 23:31:48 |
Dessiner un triangle isocèle dans une picturebox

jytest
|
Je n'arrive pas à dessiner un triangle dans une picturebox (pictriangle). Voici une partie de code : pictriangle.Cls pictriangle.CurrentX = 0 pictriangle.CurrentY = 0 pictriangle.Line -Step(160, 230), vbred pictriangle.Line -Step(-320, 0), vbRed pictriangle.Line -Step(160, -230), vbRed Qui peut m'aider ??? Grand merci d'avance. jyd
|
|
vendredi 15 décembre 2006 à 08:15:55 |
Re : Dessiner un triangle isocèle dans une picturebox

jmfmarques
|
Réponse acceptée !
J'ai décomposé pour que tu puisses mieux voir :
Private Sub Command1_Click() pictriangle.AutoRedraw = True pictriangle.DrawWidth = 5 Dim Ax As Single, Ay As Single, Bx As Single, By As Single, Cx As Single, CY As Single Ax = 0 Ax = pictriangle.ScaleWidth / 2 Ay = 0 Bx = 0 By = pictriangle.ScaleHeight Cx = pictriangle.ScaleWidth CY = pictriangle.ScaleHeight pictriangle.Line (Ax, Ay)-(Bx, By), vbRed pictriangle.Line (Bx, By)-(Cx, CY), vbRed pictriangle.Line (Cx, CY)-(Ax, Ay), vbRed End Sub
|
|
vendredi 15 décembre 2006 à 09:17:53 |
Re : Dessiner un triangle isocèle dans une picturebox

ScSami
|
Réponse acceptée !
Arf, ton problème est tout simple mon cher...
Déjà, là, prends conscience que tu dessine à la manière du language LOGO made under TO7, c'est à dire, à la manière des années 80 [mdr], ou, pour être plus précis, de manière relative. Sais-tu que tu peux aussi tracer des lignes de manière absolue ??? J'imagine que oui, mais juste au cas où, voici la syntaxe à utiliser : objet.LINE (point1_X, point1_Y)-(point2_X, point2_Y), color [, [B][F]] OBJET étant un contrôle possédant la méthode Line tel que les Form, les PictureBox, ... Les options B, BF tracent respectivement un carré ou un carré rempli de la couleur. Pi il vaut mieux utiliser une "structure de donnée" pour stocker les coordonnées des points.
Exemple : [Private/Public] Type typPoint X As Long Y As Long End Type
[Private/Public/Dim] Point1 As typPoint [Private/Public/Dim] Point2 As typPoint Point1.X = 0 Point1.Y = 0 Point2.X = 100 Point2.Y = 100
[objet].Line (Point1.X, Point1.Y)-(Point2.X, Point2.Y), [vbRed/RGB(255,0,0)], [B/BF]
bref TON PROBLÈME : 'Tu part du point 0,0
pictriangle.CurrentX = 0 pictriangle.CurrentY = 0 'Tu traces une ligne de 0,0 à 160,230 pictriangle.Line -Step(160, 230), vbred 'Tu traces une ligne de 160,230 à -320,0 pictriangle.Line -Step(-320, 0), vbRed
pictriangle.Line -Step(160, -230), vbRed
DEUX CHOSES À SAVOIR :
- L'UNITÉ (de mesure) par défaut des contrôles VB sur lesquels tu peux dessiner (FORM, PICTUREBOX, ...) est en TWIPS et non en PIXELS !!! C'est une unité relative standard made by Crosoft pour garantir un affichage identique sous tous les types de supports (écrans, imprimante, ...). Généralement, 1 Pixel = 15 Twips (et inversement). Mais en réalité, le nombre de Twips par Pixels dépend des valeurs des propriétés "TwipsPerPixelX" et "TwipsPerPixelY" retournées par l'objet "Screen" (pour ton écran donc) : Screen.TwipsPerPixelX Screen.TwipsPerPixelY. Le plus simple, au lieu de tout convertir à chaque fois, est de paramétrer la propriété "ScaleMode" de ton objet. Scale = échelle, donc, c'est le mode de l'échelle utilisée (ce qui sous entend que l'échelle peut être personnalisée. Pour résoudre ton premier problème il faut soit régler cette propriété manuellement dans l'IDE (l'interface graphique) du VB, soit via cette ligne de code (avant les autres, dans l'initialisation de ton module, autrement dit, dans Form_Load de préférence) :
pictriangle.ScaleMode = vbPixels
(Note que vbPixels est une constante VB de valeur 3 )
- LE POINT 0,0. En effet, là tu dessines hors de l'écran !!! Le point 0,0 se trouve en haut à gauche de ta PictureBox et non, tel on en a l'habitude en maths, au centre de l'écran !!! Donc, avec tes valeurs négatives, tu dessines hors de la zone affichable. Il faut, tel le sous-entends JFMmarques, utiliser les Propriétés ScaleWidth et ScaleHeight de ton objet. Elles retourne la largeur et la hauteur de la zone dessinable DANS l'unité spécifiée via ScaleMode, le pixel en l'occurence !!!
'Définition de l'unité de l'échelle employée : pictriangle.ScaleMode = vbPixels'Centre horizontal de la zone de dessin : Cx = pictriangle.ScaleWidth / 2 'Centre vertical de la zone de dessin : Cy = pictriangle.ScaleHeight / 2
Enjoy 
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
|
|
vendredi 15 décembre 2006 à 10:04:51 |
Re : Dessiner un triangle isocèle dans une picturebox

jytest
|
Merci pour votre précieuse aide !!! Génial
jyd
|
|
vendredi 15 décembre 2006 à 11:28:41 |
Re : Dessiner un triangle isocèle dans une picturebox

jmfmarques
|
Bon... Ceci étant dit : tu as eu là de quoi dessiner le plus grand triangle isocèle inscriptible dans ta pictureBox Tu a la liberté totale de dessiner d'autres triangles isocèles, mais alors : "triangle isocèle" tout court ne signifie pas grand chose ! La manière la plus simple d'en définir un est de définir sa base BC (coordonnées des 2 extrémités de la base) et sa hauteur H (car il est évident que pour une même base, tu peux dessiner plusieurs triangles isocèles.
Un calcul arithmétique élémentaire te permet alors de déterminer les coordonnées du sommet A (abscisse = (abscisse de C - abscisse de B)/2 et ordonnée = ordonnée de B - H )
Ceci pour un triangle dont la base est parallèle à celle de ta pictureBox.
Pour un triangle "incliné", c'est un peu plus compliqué mais quelques notions de trigonométrie suffisent. Amuse-toi bien.
|
|
vendredi 15 décembre 2006 à 16:24:54 |
Re : Dessiner un triangle isocèle dans une picturebox
|
dimanche 15 août 2010 à 16:52:45 |
triangles quelconques et autres

mortmen
|
Salut ScSami,
Pourrait-on en savoir un peu plus sur ces API qui pourraient nous dessiner des triangles quelconques et qui peuvent même nous les remplir ?
ça m'intéresse !
Merci et bonne prog !!! 
|
|
Cette discussion est classée dans : step, picturebox, dessiner, line, triangle
Répondre à ce message
Sujets en rapport avec ce message
Après "Comment saver une picturebox", "Commend Dessiner dans une PictureBox!" [ par WebMagique ]
Voilà, comment dessiner dans une pictureBox (comme Paint)Pour tout vous dire, je cherche à créer un créateur d'icônes & curseurs...Merci!
Je voudrais imprimer des line et des circle [ par cassiopee ]
Dans mon prog je creer des line et des circle dans un picturebox. Je voudrais les imprimer mais si j'imprime avecPicture1.paintpicture ...ca ne m'impr
Je voudrais imprimer des line et des circle [ par cassiopee ]
Dans mon prog je creer des line et des circle dans un picturebox. Je voudrais les imprimer mais si j'imprime avecPicture1.paintpicture ...ca ne m'impr
Ajouter une methode a pictureBox [ par bachir ]
Bonjour a tousJe voudrais ajouter une methode a un controle PICTUREBOX.Je voudrais savoir comment faire, creation d'une classe et implementation d'un
[PictureBox] Pset et line + statistique [ par panthere ]
Bonjours.Le but:Faire des statistiques pour une base de donnée.j'ai un pictureboxdedans je dessine une grille a l'aide de la methode line.<img src=/im
image et picturebox [ par JcDuss ]
J'ai une pictureBox, a l'interieur de celle ci, j'ai une image plus grande que je fais scroller avec la souris.Si je dessine dans la picture box, cela
Dessiner un rectangle en code dans un PictureBox [ par jeiragne ]
Bonjour,voila je commence sur .NET et je galere.j'aimerai pouvoir dessiner des rectangles, des lignes et du textes à différentes coordonnées.je faisai
picturebox.line en vb net [ par syspo ]
J'utilise couramment la méthode Line pour des objets PictureBox en VB6. Je n'arrive pas à le faire en VB net.Quelqu'un aurait 'il un exemple de dessin
Comment deplacer une Line dans un picturebox [ par pirate75000 ]
Dans un picturebox jai plusieur Line, comment pourrais selectionner par un click cette Line pour la deplacer,merci
Dessiner un triangle et le remplir [ par jeje2 ]
salutje dessine un triangle avec 3 lignes mais comment faire pour remplir l'intérieur avec une couleur ?merci d'avance
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
ACCES ODBCACCES ODBC par yannickcottin
Cliquez pour lire la suite par yannickcottin
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|