public override void GenerateNetPo() { int sitan; float PI = 3.1415926f; util u1 = new util(); sitan = 10; PO vec, vec2, pc;//沿井身 vec = new PO(0, 0, 1); vec2 = new PO(); pi = new PO(); pj = new PO(); for (int i = 5; i < 20; i = i + 4) { for (int j = 0; j < sitan; j++) { vec2.x = (float)System.Math.Cos(2 * PI * j / sitan); vec2.y = (float)System.Math.Sin(2 * PI * j / sitan); vec2.z = 0; pc = u1.Po_vec_f(u1.vec_f(vec, 0), vec2, i); if (i == 17 && j == 1) { pi = pc; } if (i == 17 && j == 2) { pj = pc; } PAINT.GetPL(pc); ge_p_l.Insert(pc); } } //PAINT.GetLL(new LINE(pi,pj)); }
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); } }
public override void GenerateNetPo() { PAINT.model_special_pl.Insert(center); show_edge_l(); float yita, rx; int ix, isita; PO ptmp; PAINT.GetPL(center); ge_p_l.Insert(center); yita = (float)System.Math.Pow(ro / ri, 1.0 / (nr - 1)); rx = ri / yita; for (ix = 0; ix < nr; ix++) { rx = rx * yita; for (isita = 0; isita < nsta; isita++) { ptmp = new PO(); ptmp.x = (float)(center.x + rx * System.Math.Cos(2 * 3.1415926 * isita / nsta)); ptmp.y = (float)(center.y + rx * System.Math.Sin(2 * 3.1415926 * isita / nsta)); if (ix == 0 && initial_pl != null) { initial_pl.Insert(ptmp); } if (Is_po_inMe(ptmp)) { PAINT.GetPL(ptmp); ge_p_l.Insert(ptmp); } } } }
public override void GenerateNetPo() { util u1 = new util(); show_edge_l(); float yita, rx; int ix, id, isita; PO ptmp, pc; PO pk; pc = new PO(); pc.x = (l0.p1.x + l0.p2.x) / 2; pc.y = (l0.p1.y + l0.p2.y) / 2; yita = (float)System.Math.Pow(ro / ri, 1.0 / (nr - 1)); for (id = 0; id <= nd - 1; id++) { ptmp = new PO(); ptmp.x = ((nd - 1 - id) * l0.p1.x + id * l0.p2.x) / (nd - 1); ptmp.y = ((nd - 1 - id) * l0.p1.y + id * l0.p2.y) / (nd - 1); ge_p_l.Insert(ptmp); PAINT.GetPL(ptmp); } for (ix = 0; ix < nr; ix++) { rx = (float)(ri * System.Math.Pow(yita, ix)); for (id = 1; id < nd - 1; id++) { ptmp = new PO(); ptmp.x = ((nd - 1 - id) * l0.p1.x + id * l0.p2.x) / (nd - 1); ptmp.y = ((nd - 1 - id) * l0.p1.y + id * l0.p2.y) / (nd - 1); pk = u1.po_vertical(ptmp, l0.p1, l0.p2, rx); ge_p_l.Insert(pk); PAINT.GetPL(pk); pk = u1.po_vertical(ptmp, l0.p2, l0.p1, rx); ge_p_l.Insert(pk); PAINT.GetPL(pk); } for (isita = 0; isita <= nsta / 2; isita++) { ptmp = new PO(); ptmp.x = (float)(l0.p1.x + rx * System.Math.Cos(2 * 3.1415926 * isita / nsta + u1.CalAgl(l0.p1, l0.p2) + 3.1415926 / 2)); ptmp.y = (float)(l0.p1.y + rx * System.Math.Sin(2 * 3.1415926 * isita / nsta + u1.CalAgl(l0.p1, l0.p2) + 3.1415926 / 2)); ge_p_l.Insert(ptmp); PAINT.GetPL(ptmp); } for (isita = 0; isita <= nsta / 2; isita++) { ptmp = new PO(); ptmp.x = (float)(l0.p2.x + rx * System.Math.Cos(2 * 3.1415926 * isita / nsta + u1.CalAgl(l0.p1, l0.p2) + 3.1415926 * 1.5f)); ptmp.y = (float)(l0.p2.y + rx * System.Math.Sin(2 * 3.1415926 * isita / nsta + u1.CalAgl(l0.p1, l0.p2) + 3.1415926 * 1.5f)); ge_p_l.Insert(ptmp); PAINT.GetPL(ptmp); } } }
public override void GenerateNetPo() { util u1 = new util(); float x, y; PO tmp1; for (x = pmin.x; x < pmax.x; x = x + dx) { for (y = pmin.y; y < pmax.y; y = y + dy) { tmp1 = new PO(); tmp1.x = x; tmp1.y = y; if (Is_po_inMe(tmp1) && !Is_po_inallmodel(tmp1)) {//如果tmp在plane的边界内,且不在某个模块内 ge_p_l.Insert(tmp1); PAINT.GetPL(tmp1); } } } }