public override void GenerateNetPo() { float L, li, d, sof, distance1, distance2; //sof是初始偏差值 PO tmp, po; PAINT.GetLL(l0); util u1 = new util(); show_edge_l(); L = l0.Length(); sof = (float)((L - System.Math.Floor(L / dx) * dx) / 2); for (int i = 1; i <= System.Math.Floor(L / dx) - 1; i++) { li = (float)(sof + i * dx); tmp = new PO(); tmp.x = (l0.p1.x * (L - li) + l0.p2.x * li) / L; tmp.y = (l0.p1.y * (L - li) + l0.p2.y * li) / L; distance1 = Cal_distance_po_edge(tmp, u1.po_vertical(tmp, l0.p1, l0.p2, dy)); distance2 = Cal_distance_po_edge(tmp, u1.po_vertical(tmp, l0.p2, l0.p1, dy)); if (distance1 > distance2) { distance1 = distance2; } po = u1.po_vertical(tmp, l0.p1, l0.p2, distance1 * 1 / 2); ge_p_l.Insert(po); PAINT.GetPL(po); po = u1.po_vertical(tmp, l0.p2, l0.p1, distance1 * 1 / 2); ge_p_l.Insert(po); PAINT.GetPL(po); } }
int nd; //井段分割数,井段上网格个数(包括两侧的圆心所在的网格); public h_well2d(LINE l1) { util u1 = new util(); edge_pl = new LinkList <PO>(); l1.p1.key = 1; l1.p2.key = 1; l0 = l1; nr = 4; nsta = 8; nd = (int)(l0.Length() / 1.0f); ri = 1; ro = 2; type = 4; }