Używam rysunków .Net do rysowania diagramu. Jest to zasadniczo skumulowany wykres słupkowy. Mam problem polegający na tym, że chcę zmniejszyć ilość linii w stylu kreskowania, tak aby w pewnym stopniu skalować go tak, aby był wyraźniejszy. Rozejrzałem się, ale nie natknąłem się na nic, co mogłoby mi pomóc.Jak mogę skalować kreskowania rysowane w prostokącie?
Rysuję prostokąt, a następnie używam go do wypełnienia, ale ze względu na rozmiar obrazu kreskowanie staje się mniej wyraźne. Dziękuję za wszelkie sugestie.
Style kreskowania i szczotki są przechowywane w db i używam funkcji pomocnika, aby je zwrócić. Rysuję więc prostokąt i po zdobyciu pędzla wypełniam prostokąt. Zasadniczo chcę zwiększyć wypełnienie kreskowania, jeśli można to zrobić.
g.DrawRectangle(gridpen, startX, startY, BOREHOLE_RECT_WIDTH, layerRectHeight);
brush = GetBoreholeBrush(l.SoilTypeMatrixLevel1Id.PrimaryBrushType,
l.SoilTypeMatrixLevel1Id.PrimaryFillStyle,
l.SoilTypeMatrixLevel1Id.PrimaryColour);
g.FillRectangle(brush, startX, startY, BOREHOLE_RECT_WIDTH, layerRectHeight);
I funkcja getBrush; rodzaj pędzla, styl właz i kolor są przechowywane w db i wykorzystywane do tworzenia wracającą szczotki:
//===================================
private Brush GetBoreholeBrush(string BrushType, string HatchStyle, string Colour)
//===================================
{
//Decide on what brush type has been chosen.
Brush brush;
if (BrushType.ToLower() == BrushTypes.HatchBrush.ToString().ToLower())
{
brush = new HatchBrush(GetHatchStyle(HatchStyle),
Color.Black, ColorTranslator.FromHtml(Colour));
}
else if (BrushType.ToLower() == BrushTypes.SolidBrush.ToString().ToLower())
{
brush = new HatchBrush(GetHatchStyle(HatchStyle),
Color.Black, ColorTranslator.FromHtml(Colour));
}
else if (BrushType.ToLower() == BrushTypes.TextureBrush.ToString().ToLower())
{
brush = new HatchBrush(GetHatchStyle(HatchStyle),
Color.Black, ColorTranslator.FromHtml(Colour));
}
else
{
brush = new HatchBrush(GetHatchStyle(HatchStyle),
Color.Black, ColorTranslator.FromHtml(Colour));
}
return brush;
}
Funkcja powrotu styl kreskowania:
//===================================
private HatchStyle GetHatchStyle(string FillStyle)
//===================================
{
//Loop through each hatch tyle and return the correct one.
foreach (HatchStyle style in Enum.GetValues(typeof(HatchStyle)))
{
if (style.ToString().ToLower() == FillStyle.ToLower())
{
return style;
}
}
return HatchStyle.Vertical;
}
Jak widać na obrazku poniżej styl kreskowania nie jest jasny.
_as obraz wzrost rozmiarów_ Musisz to wyjaśnić! W jaki sposób zwiększa się rozmiar obrazu? Skalowanie obrazu? (Oczywiście wtedy wszystkie piksele są skalowane i nieostre, Zamiast tego narysuj je we właściwym rozmiarze, a następnie wypełnij ..) – TaW
Niestety to było złe wytłumaczenie z mojej strony. Wielkość obrazu nie zmienia się. Ponieważ jest to duży obraz, styl kreskowania staje się mniej wyraźny i chcę go skalować. –
Zasadniczo masz duży wykres, a twój styl kreskowania jest mały i chcesz powiększyć szerokość linii i odstępów między liniami w stylu kreskowania, e więc kiedy obraz jest wydrukowany lub pomniejszony, kreskowanie/linie będą nadal widoczne jako kreskowane, a nie jako "szare"? – quetzalcoatl