public void Show(Graphics gr, Pen p, Diem node) { gr.DrawLine(p, node.X, node.Y, node.X + X, node.Y + Y); }
public void Veduongthang(Graphics gr, Pen p, Diem node) { gr.DrawLine(p, X, Y, node.X, node.Y); }
public Diem Dagiacloi(Graphics gr, ref int numberShow, List <CosGoc> lstCos) { if (lstDiem.Count == 0) { return(null); } int X_max = lstDiem[0].X; int Y_max = lstDiem[0].Y; Vector vector = new Vector() { X = 10, Y = 10 }; for (int i = 0; i < lstDiem.Count; i++) { if (Y_max < lstDiem[i].Y) { Y_max = lstDiem[i].Y; X_max = lstDiem[i].X; } else if (Y_max == lstDiem[i].Y) { Y_max = lstDiem[i].Y; X_max = X_max < lstDiem[i].X ? lstDiem[i].X : X_max; } } Diem node = lstDiem.Find(x => x.X == X_max && x.Y == Y_max); vector.Show(gr, pBien, node); List <Diem> lstBien = new List <Diem>(); lstBien.Add(node); //for (int i = 0; i < lstDiem.Count; i++) //{ // Diem newDiemBien = Helper.Laydiemcogocnhonhatsovoivector(lstDiem, node, vector, lstCos); // if (lstBien.FindIndex(x => x.DiemID == newDiemBien.DiemID) < 0) // { // lstBien.Add(newDiemBien); // } // vector = new Vector() { X = newDiemBien.X - node.X, Y = newDiemBien.Y - node.Y }; // node = newDiemBien; //} Diem newDiemBien = null; node.DanhDau(gr, new Pen(Color.Gray)); for (int i = 0; i < numberShow; i++) { newDiemBien = Helper.Laydiemcogocnhonhatsovoivector(lstDiem, node, vector, lstCos); if (lstBien.FindIndex(x => x.DiemID == newDiemBien.DiemID) < 0) { lstBien.Add(newDiemBien); } vector = new Vector() { X = newDiemBien.X - node.X, Y = newDiemBien.Y - node.Y }; node = newDiemBien; newDiemBien.DanhDau(gr, new Pen(Color.Gray)); //vector.Show(gr, pBien, node); } if (numberShow >= lstBien.Count) { numberShow = lstBien.Count - 1; } for (int i = 0; i < numberShow; i++) { lstBien[i].Veduongthang(gr, pBien, lstBien[i + 1]); } if (newDiemBien != null) { if (newDiemBien.DiemID == lstBien[0].DiemID) { lstBien[lstBien.Count - 1].Veduongthang(gr, pBien, lstBien[0]); } } return(newDiemBien); }