Je dois tracer une ligne d'un pouce de long sur n'importe quel appareil donné une référence Graphics
à celui-ci. J'ai besoin d'être un pouce de long, indépendamment de ce que Transform
est réglé. Supposons que le facteur d'échelle de la transformée soit donné par scale
dans les directions horizontale et verticale.GDI +: Comment tracer une ligne d'un pouce de long sur un périphérique sur lequel il est dessiné?
Certains C++/CLI Code:
g->DrawLine(Pens::Black, 50.0f, 50.0f, 50.0f + oneInchEquivalent/scale, 50.0f);
Maintenant que n'a pas été difficile du tout! Maintenant tout ce que nous devons faire est de calculer oneInchEquivalent
.
g->DpiX
me donne une distance de ce qui ressemble à un pouce sur l'écran, mais pas sur l'imprimante. Il semble que sur les imprimantes, dessiner une ligne de 100 unités avec g->PageUnit
mis à GraphicsUnit :: Display me donnera une ligne d'un pouce de long. Mais, j'ai vraiment besoin que cela fonctionne quel que soit le paramètre PageUnit
. En fait, changer PageUnit
va changer la largeur du stylo !!
Éditer: J'ai provisoirement accepté la seule réponse ici car elle est assez proche de ce que je recherche.
J'ai mis à jour ma réponse maintenant avec un échantillon d'impression –