Stack Overflow на русском Asked on August 30, 2021
Мне необходимо графически отобразить граф, введенный матрицей смежности. Граф ориентированный. Можно как-то поставить стрелочки на линиях ?
Я пыталась сделать иначе. Я рисовала линию с цветным градиентом, зеленый-начало, красный-конец. И все бы не плохо, но градиент виден не на всех линиях,только на тех,что длиннее. Код внизу.
Может,есть какие-то еще варианты? Готовые библиотеки использовать запретили…
for(int i=0;i<dataGridView1.RowCount;i++)
{
for(int j=0;j<dataGridView1.ColumnCount;j++)
{
if(Convert.ToInt32(dataGridView1.Rows[i].Cells[j].Value)==1)
gr.DrawLine(new Pen(new System.Drawing.Drawing2D.LinearGradientBrush(new Point(Convert.ToInt32(X[i]), Convert.ToInt32(Y[i])), new Point(Convert.ToInt32(X[j]),Convert.ToInt32(X[j])), Color.Green, Color.Red), 3), new Point(Convert.ToInt32(X[i]), Convert.ToInt32(Y[i])), new Point(Convert.ToInt32(X[j]), Convert.ToInt32(Y[j])));
else
{
continue;
}
}
}
X и Y-списки с координатами точек
У класса Pen
есть свойство EndCap
, с помощью которого можно задать стрелочку в конце линии:
//создаем Pen
using(var pen = new Pen....)
{
//задаем стрелочку
pen.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor;
//рисуем линию
gr.DrawLine(pen,
Convert.ToInt32(X[i]),
Convert.ToInt32(Y[i]),
Convert.ToInt32(X[j]),
Convert.ToInt32(Y[j])
);
}
Answered by default locale on August 30, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP