Ecrire en diagonale

Signaler
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006
-
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006
-
Bonjour à tous,
voila je suis en train de me créer un petit histogramme avec gdi+, et j'aimerai écrire donc les graduations en biais, en faite en abscisses j'ai des dates, j'aimerai qu'elle soit affiché en biais mais je ne sais pas comment faire. J'ai fait une petite recherche sur le site mais j'ai pas trouvé, j'ai juste réussi à afficher verticalement mais en bias non.

Merci d'avance !



Kbitnik

8 réponses

Messages postés
341
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
10 février 2009
2
Salut, si tu ecris ton texte via un objet Graphics, tu peux essayer de le transformer avec la propriété Transform
du type Matrix. En fait tu lui donne une matrice de
transformation qui va appliquer la transformation
géométrique à ton objet Graphics.

Avec cette méthode, tu peux normalement écrire du texte dans n'importe quelle direction
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006

Ok mais en faite comment je dois faire je doit créer un autre objet Graphics ?
Parce que en faite j'ai que un objet Graphics pour mon graph et mes graduations...
Et puis je vois pas trop comment je pourrais faire



Kbitnik
Messages postés
341
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
10 février 2009
2
Pourquoi créé une autre instance alors que tu en as une pour écrire tes graduations ?

Sinon, si ton histogramme dérive de l'objet Control, il y a la méthode CreateGraphics
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006

Ok, en faite donc la j'ai ça dans mon code :
Graphics g = this.createGraphics();
g.drawstring("date",new font("Arial",1),new SolidBrush(Color.Black),new Point(X,Y));
Donc là, ça m'affiche bien mon texte mais horizontalement. Et j'aimerai l'incliner légérement mais je ne vois pas comment utiliser matrix. Je dois faire comment, je dois créer un objet matrix et supprimer le drawstring ? je dois créer un objet Matrix et laisser le drawstring ?



Kbitnik
Messages postés
341
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
10 février 2009
2
J'ai pas eu le temps de tester mais je pense que si tu fais :

Graphics g = this.createGraphics();

g.Transform = MyMatrix;

g.drawstring("date",new font("Arial",1),new SolidBrush(Color.Black),new Point(X,Y));



c'est bon. Après il faut juste remplir la matrice avec les bonnes valeurs pour avoir l'effet voulu.
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006

Ok, et bien je fais exactement ça, mais en faite ça m'applique une rotation, mais ça me déplace carrément le mot date . Et pas moyen de le remettre normalmen !



Kbitnik
Messages postés
341
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
10 février 2009
2
Juste une question ta matrice a quelle forme ? Un truc du style avec A l'angle de rotation, pour une rotation par rapport à Oz.




( cos(A), sin(A), 0 )


( -sin(A), cos(A), 0)


( 0 , 0 , 1 )
Messages postés
125
Date d'inscription
mercredi 15 novembre 2000
Statut
Membre
Dernière intervention
2 mars 2006

Je suis désolé mais je craint de ne pas pouvoir répondre à ta question, je suis pas très calé en graphique. Et jee vais t'avouer qu'avec l'utilisation des matrices je suis perdu. Surtout avec ce que tu m'as marqué juste au dessus. Je ne sais pas où je dois mettre ça...Moi tout ce que j'ai fait, je l'ai marqué dans l'extrait de code que j'ai posté précédemment, maintenant je n'y connais pas grand chose de plus. Tout ce que je peux te dire, c'est que je fais mon inclinaison dans un pour comme on le voit dans le code de l'article précédent, car je récupére des valeur d'un tableau et je ne sais donc pas le nombre de valeur que je vais avoir dans ce tableau. Donc mon inclinaison se fait normalment seulment toutes mes dates restent colés entre elles comme si elles ne formées qu'une seule même chaîne de caractères. J'ai essayé de les placer mais il n'y a vraiment pas moyen !

Kbitnik