System.Drawing - jednostki rysowania pixels

0

Witam,

Muszę narysować przekrój przez belkę zbrojoną. Kiedy chcę rozmieścić kółeczka (symbolizujące pręty) w jakimś prostokącie (robię to pętlą for) to ostatnie kółko wybiega gdzieś poza obszar. Wszystko przez to, że PageUnit jest ustawione na pixels. Po prostu niektóre odległości nie dzielą się na równe części bo jak podzielić 50 pikseli na 3 równe odcinki. Czy ktoś może mi pomóc jak to zaprogramować, aby kółeczka się symetrycznie rozkładały?

0

51 już ładnie dzieli się na 3 :)

A tak bardziej serio, właśnie odkryłeś ograniczenia grafiki komputerowej. Na monitorze zapalają sie pixele i nic na to nie poradzisz. Nawet jeśli będziesz określał wymiary w innych jednostkach, to finalnie i tak przekłada się to na pixele.
Aby całość wyglądała lepiej możesz odpowiednio przeskalować pewne wymiary, czy tak dobrać wymiary elementu po którym rysujesz, aby wszystko ładnie ci się zmieściło. Możesz też użyć antyaliasing'u, wygładzenie krawędzi może spowodować że takie jednopixelowe "błędy" nie będą wychwycone przez ludzkie oko.

0

stwórz bitmapę większą niż kontrolka. rysuj jak ci się podoba, a potem .NET automatycznie przeskaluje ją do wymiarów kontrolki.
użyj PictureBox.

1

Użyj przeciążonych metod w wersji z floatami:

public void FillEllipse(
	Brush brush,
	float x,
	float y,
	float width,
	float height
)

Wtedy możesz podzielić 50 pikseli na 3 kółka (każde po 16.(6) pikseli).

1 użytkowników online, w tym zalogowanych: 0, gości: 1