Я использую рисунок .Net для рисования диаграммы. Это, по существу, сложная гистограмма. Проблема у меня в том, что я хочу уменьшить количество строк в стиле штриховки, чтобы таким образом масштабировать ее, чтобы сделать ее более ясной. Я огляделся, но не наткнулся на все, что могло мне помочь.Как увеличить масштаб штриховки в прямоугольнике?
Я рисую прямоугольник, а затем использую люковую щетку, чтобы заполнить его, но из-за размера изображения люк становится менее понятным. Благодарим вас за любые предложения.
Типы hatchStyles и кистей хранятся в db, и я использую вспомогательную функцию для их возврата. Поэтому я рисую прямоугольник, и после получения кисти я заполняю прямоугольник. По сути, я хочу увеличить заливку заливки, если это можно сделать.
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);
И функция getBrush; тип кисти, стиль штриховки и цвет сохраняются в БД и используется для создания возвращаемой кисти:
//===================================
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;
}
Функция возвращает стиль штриховки:
//===================================
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;
}
Как вы можете видеть на картинке ниже стиль штриховки не ясен.
_as изображение размер увеличивается. Вы должны это объяснить! Как увеличивается размер изображения? Масштабируя изображение? (Очевидно, тогда все пиксели получаются масштабированными и нерезкими, вместо этого рисуют в нужном размере, а затем заполняем.) – TaW
Извините, это было плохое объяснение с моей стороны. Доза размера изображения не изменяется. Из-за большого изображения стиль штриховки становится менее ясным, и я хочу его масштабировать. –
Итак, у вас есть большая диаграмма, а ваш hatchstyle пиксель-маленький, и вы хотите увеличить ширину линий и промежутков между линиями в штриховке, так что, когда ваше изображение будет напечатано или уменьшено, штриховки/линии все еще будут видны как заштрихованные, а не как «сероватые»? – quetzalcoatl