GDI +: Jak narysować linię o długości jednego cala na dowolnym urządzeniu, na którym jest narysowana?
Muszę narysować linię o długości jednego cala na dowolnym urządzeniu podanymGraphics
odniesienie do tego. Potrzebuję go, aby był calowy, niezależnie od tego, coTransform
jest ustawione na. Załóżmy, że współczynnik skalowania transformacji jest podany przezscale
w kierunkach poziomym i pionowym.
Niektóre kody C ++ / CLI:
g->DrawLine(Pens::Black, 50.0f, 50.0f, 50.0f + oneInchEquivalent / scale, 50.0f);
Teraz to wcale nie było trudne! Teraz wszystko, co musimy zrobić, to obliczyćoneInchEquivalent
.
g->DpiX
daje mi odległość, która wygląda jak jeden cal na ekranie, ale nie na drukarce. Wydaje się, że na drukarkach narysowano linię 100 jednostekg->PageUnit
ustaw na GraphicsUnit :: Display da mi linię o długości jednego cala. Ale naprawdę potrzebuję tego do pracy bez względu naPageUnit
oprawa. W rzeczywistości zmienia sięPageUnit
zmieni szerokość pióra !!
Edytować: Wstępnie zaakceptowałem jedyną odpowiedź tutaj, ponieważ jest ona bliska temu, czego szukam.