|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Dessiner un triangle isocèle dans une picturebox [ Divers / Débutants ] (jytest)
Informations & options pour cette discussion
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
|
Cette discussion est classé 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
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|