//,Physic.Grid myGrid,System.Collections.ArrayList alData) void Draw_Field_Vectors(System.Drawing.Graphics myGraphics) { if (get_mode()==0) { Physic.Electrostatic_field E_max = new Physic.Electrostatic_field(); E_max.set_x(60); foreach (DefaultNamespace.Data myData in alDatas.Data) { Physic.Position pt = myData.position; Physic.Electrostatic_field E = myData.E; Math.Vector_draw myVector = new Math.Vector_draw(); myVector.position_start.set_x(pt.get_x()); myVector.position_start.set_y(pt.get_y()); myVector.position_end.set_x(pt.get_x()+E.get_x()); myVector.position_end.set_y(pt.get_y()+E.get_y()); if (this.mnuOptionsUseColors.Checked) { Physic.Color myColor = new Physic.Color(); myVector.color = myColor.color("step",E.norm,0,E_max.norm); } else { myVector.color = System.Drawing.Color.White; } myVector.Draw(myGraphics); } } else if (get_mode()==1) { Physic.Magnetostatic_field B_max = new Physic.Magnetostatic_field(); B_max.set_x(60); foreach (DefaultNamespace.Data myData in alDatas.Data) { Physic.Position pt = myData.position; Physic.Magnetostatic_field B = myData.B; Math.Vector_draw myVector = new Math.Vector_draw(); myVector.position_start.set_x(pt.get_x()); myVector.position_start.set_y(pt.get_y()); myVector.position_end.set_x(pt.get_x()+B.get_x()); myVector.position_end.set_y(pt.get_y()+B.get_y()); if (this.mnuOptionsUseColors.Checked) { Physic.Color myColor = new Physic.Color(); myVector.color = myColor.color("step",B.norm,0,B_max.norm); } else { myVector.color = System.Drawing.Color.White; } myVector.Draw(myGraphics); } } }
void Draw_Field_Rectangles(System.Drawing.Graphics myGraphics) { if (get_mode()==0) { Physic.Electrostatic_field E_max = new Physic.Electrostatic_field(); E_max.set_x(60); foreach (DefaultNamespace.Data myData in alDatas.Data) { Physic.Position pt = myData.position; Physic.Electrostatic_field E = myData.E; Rectangle_draw myRect = new Rectangle_draw(); myRect.width = myGrid.get_space().get_x()/2; myRect.height = myGrid.get_space().get_y()/2; myRect.get_position().set_x(pt.get_x()); myRect.get_position().set_y(pt.get_y()); if (this.mnuOptionsUseColors.Checked) { Physic.Color myColor = new Physic.Color(); myRect.color = myColor.color("step",E.norm,0,E_max.norm); } else { myRect.color = System.Drawing.Color.White; } myRect.Draw(myGraphics); } } }
//,Physic.Grid myGrid,System.Collections.ArrayList alData) void Draw_Field_Grains(System.Drawing.Graphics myGraphics) { if (this.mnuModeE.Checked==true) { Physic.Electrostatic_field E_max = new Physic.Electrostatic_field(); E_max.set_x(60); foreach (DefaultNamespace.Data myData in alDatas.Data) { Physic.Position pt = myData.position; Physic.Electrostatic_field E = myData.E; Physic.Grain_draw myGrain = new Physic.Grain_draw(); myGrain.len = (float) System.Math.Sqrt(myGrid.get_space().get_x()*myGrid.get_space().get_x() + myGrid.get_space().get_y()*myGrid.get_space().get_y()) / (float) System.Math.Sqrt(2); myGrain.get_position().set_x(pt.get_x()); myGrain.get_position().set_y(pt.get_y()); myGrain.get_direction().set_x(E.get_x()); myGrain.get_direction().set_y(E.get_y()); if (this.mnuOptionsUseColors.Checked) { Physic.Color myColor = new Physic.Color(); myGrain.color = myColor.color("linear",E.norm,0,E_max.norm); } else { myGrain.color = System.Drawing.Color.White; } myGrain.Draw(myGraphics); } } else if (this.mnuModeB.Checked==true) { Physic.Magnetostatic_field B_max = new Physic.Magnetostatic_field(); B_max.set_x(60); foreach (DefaultNamespace.Data myData in alDatas.Data) { Physic.Position pt = myData.position; Physic.Magnetostatic_field B = myData.B; Physic.Grain_draw myGrain = new Physic.Grain_draw(); myGrain.len = (float) System.Math.Sqrt(myGrid.get_space().get_x()*myGrid.get_space().get_x() + myGrid.get_space().get_y()*myGrid.get_space().get_y()) / (float) System.Math.Sqrt(2); myGrain.get_position().set_x(pt.get_x()); myGrain.get_position().set_y(pt.get_y()); myGrain.get_direction().set_x(B.get_x()); myGrain.get_direction().set_y(B.get_y()); if (this.mnuOptionsUseColors.Checked) { Physic.Color myColor = new Physic.Color(); myGrain.color = myColor.color("linear",B.norm,0,B_max.norm); } else { myGrain.color = System.Drawing.Color.White; } myGrain.Draw(myGraphics); } } }
void Calculate_Datas() { foreach(Physic.Position pt in myGrid.get_positions()) { Physic.Electrostatic_field E = new Physic.Electrostatic_field(pt); Physic.Electrostatic_potential V = new Physic.Electrostatic_potential(pt); Physic.Magnetostatic_field B = new Physic.Magnetostatic_field(pt); foreach (Physic.Charge chg in alCharges.Charge) { Physic.Electrostatic_field E_tmp = new Physic.Electrostatic_field(chg,pt); Physic.Magnetostatic_field B_tmp = new Physic.Magnetostatic_field(chg,pt); E = E + E_tmp; // + is overload B = B + B_tmp; Physic.Electrostatic_potential V_tmp = new Physic.Electrostatic_potential(chg,pt); V = V + V_tmp; } DefaultNamespace.Data myData = new DefaultNamespace.Data(); myData.position = pt; myData.E = E; myData.V = V; myData.B = B; alDatas.Data.Add(myData); } }
public Physic.Electrostatic_field real_to_screen(Physic.Electrostatic_field E_real) { Physic.Electrostatic_field E_screen = new Physic.Electrostatic_field(); E_screen.set_x ( real_to_screen( E1_real.get_x(), E1_screen.get_x(), E2_real.get_x(), E2_screen.get_x(), E_real.get_x()) ); E_screen.set_y ( real_to_screen( E1_real.get_y(), E1_screen.get_y(), E2_real.get_y(), E2_screen.get_y(), E_real.get_y()) ); E_screen.set_z ( real_to_screen( E1_real.get_z(), E1_screen.get_z(), E2_real.get_z(), E2_screen.get_z(), E_real.get_z()) ); E_screen.apply_to.set_x ( real_to_screen( E1_real.apply_to.get_x(), E1_screen.apply_to.get_x(), E2_real.apply_to.get_x(), E2_screen.apply_to.get_x(), E_real.apply_to.get_x()) ); E_screen.apply_to.set_y ( real_to_screen( E1_real.apply_to.get_y(), E1_screen.apply_to.get_y(), E2_real.apply_to.get_y(), E2_screen.apply_to.get_y(), E_real.apply_to.get_y()) ); E_screen.apply_to.set_z ( real_to_screen( E1_real.apply_to.get_z(), E1_screen.apply_to.get_z(), E2_real.apply_to.get_z(), E2_screen.apply_to.get_z(), E_real.apply_to.get_z()) ); return E_screen; }
public Physic.Electrostatic_field screen_to_real(Physic.Electrostatic_field E_screen) { Physic.Electrostatic_field E_real = new Physic.Electrostatic_field(); E_real.set_x ( screen_to_real( E1_screen.get_x(), E1_real.get_x(), E2_screen.get_x(), E_real.get_x(), E_screen.get_x()) ); E_real.set_y ( screen_to_real( E1_screen.get_y(), E1_real.get_y(), E2_screen.get_y(), E_real.get_y(), E_screen.get_y()) ); E_real.set_z ( screen_to_real( E1_screen.get_z(), E1_real.get_z(), E2_screen.get_z(), E_real.get_z(), E_screen.get_z()) ); E_real.apply_to.set_x ( screen_to_real( E1_screen.apply_to.get_x(), E1_real.apply_to.get_x(), E2_screen.apply_to.get_x(), E_real.apply_to.get_x(), E_screen.apply_to.get_x()) ); E_real.apply_to.set_y ( screen_to_real( E1_screen.apply_to.get_y(), E1_real.apply_to.get_y(), E2_screen.apply_to.get_y(), E_real.apply_to.get_y(), E_screen.apply_to.get_y()) ); E_real.apply_to.set_z ( screen_to_real( E1_screen.apply_to.get_z(), E1_real.apply_to.get_z(), E2_screen.apply_to.get_z(), E_real.apply_to.get_z(), E_screen.apply_to.get_z()) ); return E_real; }