public edge(Graphics g, PictureBox pb, ref point3d p1, ref point3d p2) { this.p1 = p1; this.p2 = p2; this.g = g; this.pb = pb; }
public object Clone() { point3d[] points = new point3d[this.points.Length]; for (int i = 0; i < this.points.Length; i++) points[i] = this.points[i]; return new polygons((Brush)this.color.Clone(), points); }
static polyhedron tetrahedron(Graphics g, PictureBox pb, int size) { double h = size * Math.Sqrt(3); point3d p1 = new point3d(-size, (int)-h / 2, (int)-h / 2); point3d p2 = new point3d(size, (int)-h / 2, (int)-h / 2); point3d p3 = new point3d(0, (int)-h / 2, (int)h / 2); point3d p4 = new point3d(0, (int)h / 2, 0); edge e1 = new edge(g, pb, ref p1, ref p2); edge e2 = new edge(g, pb, ref p2, ref p3); edge e3 = new edge(g, pb, ref p3, ref p1); edge e4 = new edge(g, pb, ref p1, ref p4); edge e5 = new edge(g, pb, ref p2, ref p4); edge e6 = new edge(g, pb, ref p3, ref p4); polygon plg1 = new polygon(); plg1.add(e1); plg1.add(e2); plg1.add(e3); polygon plg2 = new polygon(); plg2.add(e1); plg2.add(e4); plg2.add(e5); polygon plg3 = new polygon(); plg3.add(e2); plg3.add(e5); plg3.add(e6); polygon plg4 = new polygon(); plg4.add(e3); plg4.add(e4); plg4.add(e6); polyhedron res = new polyhedron(); res.add(plg1); res.add(plg2); res.add(plg3); res.add(plg4); return(res); }
extern static void axisrotate(ref point3d vector, ref point3d axis, float angle);
static void Main(string[] args) { string tofort = "Howdy Doody Man"; int n = tofort.Length; PassString(tofort, ref n); double[] DegreesC = { 32, 64 }; double[] DegreesF = { 0, 0 }; n = 2; DegCtoF(DegreesC, DegreesF, ref n); for (int i = 0; i < n; i++) { Console.WriteLine("{0} : {1:0.00} [C] = {2:0.00} [F]\n", i, DegreesC[i], DegreesF[i]); } point3d d = new point3d { x = 3.0f, y = 7.0f, z = 9.0f }; Console.WriteLine($"values before fortran call: x = {d.x:0.00}, y = {d.y:0.00}, z = {d.z:0.00}"); fflip(ref d); Console.WriteLine($"values after fortran call: x = {d.x:0.00}, y = {d.y:0.00}, z = {d.z:0.00}"); Console.WriteLine(); point3d[] arr = { new point3d { x = 3.0f, y = 7.0f, z = 9.0f }, new point3d { x = 56.0f, y = 27.0f, z = 91.0f }, new point3d { x = 45.3f, y = 22.7f, z = 71.0f } }; foreach (point3d pd in arr) { Console.WriteLine($"values before fortran call to flipparr: x = {pd.x:0.00}, y = {pd.y:0.00}, z = {pd.z:0.00}"); } int nn = arr.Length; ffliparr(arr, ref nn); Console.WriteLine(); foreach (point3d pd in arr) { Console.WriteLine($"values after fortran call to flipparr: x = {pd.x:0.00}, y = {pd.y:0.00}, z = {pd.z:0.00}"); } Console.WriteLine(); int rows = 2; int cols = 2; double[,] matrix = GetTestMatrix(cols, rows); StringBuilder sb = new StringBuilder(); for (int i = 0; i < cols; i++) { for (int j = 0; j < rows; j++) { //matrix[i, j] = rnd.NextDouble(); sb.AppendFormat("{0}\t", matrix[i, j]); } sb.Append(Environment.NewLine); } Console.WriteLine("From C#"); Console.Write(sb.ToString()); Console.WriteLine("From Fortran"); PassMatrix(matrix, ref cols, ref rows); }
static extern void fflip(ref point3d p);
public polygon(Brush color, point3d[] points) { this.color = color; this.points = points; }
static extern void axisrotate(ref point3d vector, ref point3d axis, float angle);
public void SetCharWidth(point3d width) { pd = width; }
protected static extern float voxie_drawheimap(ref voxie_frame_t vf, [MarshalAs(UnmanagedType.LPStr)] string st, ref point3d p, ref point3d r, ref point3d d, ref point3d f, int colorkey, int heimin, int flags);
protected static extern void voxie_drawcube(ref voxie_frame_t vf, ref point3d p, ref point3d r, ref point3d d, ref point3d f, int fillmode, int col);
protected static extern void voxie_printalph(ref voxie_frame_t vf, ref point3d p, ref point3d r, ref point3d d, int col, [MarshalAs(UnmanagedType.LPStr)] string st);
protected static extern int voxie_drawspr(ref voxie_frame_t vf, [MarshalAs(UnmanagedType.LPStr)] string st, ref point3d p, ref point3d r, ref point3d d, ref point3d f, int col);
[DllImport("voxiebox", CallingConvention = CallingConvention.Cdecl)] protected extern static void voxie_drawmesh(ref voxie_frame_t vf, ref point3d pt, int ptn, ref int mesh, int meshn, int fillmode, int col);
protected static extern void voxie_printalph(ref voxie_frame_t vf, ref point3d p, ref point3d r, ref point3d d, int col, byte[] st);
public static point3d Rotate(point3d vector, point3d axis, float angle) { axisrotate(ref vector, ref axis, angle); return(vector); }
public void SetLocation(point3d position) { pp = position; }
static polyhedron octahedron(Graphics g, PictureBox pb, int size) { point3d p1 = new point3d(-size / 2, 0, 0); point3d p2 = new point3d(0, 0, -size / 2); point3d p3 = new point3d(size / 2, 0, 0); point3d p4 = new point3d(0, 0, size / 2); point3d p5 = new point3d(0, size / 2, 0); point3d p6 = new point3d(0, -size / 2, 0); edge e1 = new edge(g, pb, ref p1, ref p2); edge e2 = new edge(g, pb, ref p2, ref p3); edge e3 = new edge(g, pb, ref p3, ref p4); edge e4 = new edge(g, pb, ref p1, ref p4); edge e5 = new edge(g, pb, ref p1, ref p5); edge e6 = new edge(g, pb, ref p2, ref p5); edge e7 = new edge(g, pb, ref p3, ref p5); edge e8 = new edge(g, pb, ref p4, ref p5); edge e9 = new edge(g, pb, ref p1, ref p6); edge e10 = new edge(g, pb, ref p2, ref p6); edge e11 = new edge(g, pb, ref p3, ref p6); edge e12 = new edge(g, pb, ref p4, ref p6); polygon plg1 = new polygon(); plg1.add(e1); plg1.add(e6); plg1.add(e5); polygon plg2 = new polygon(); plg2.add(e2); plg2.add(e7); plg2.add(e6); polygon plg3 = new polygon(); plg3.add(e3); plg3.add(e7); plg3.add(e8); polygon plg4 = new polygon(); plg4.add(e4); plg4.add(e8); plg4.add(e5); polygon plg5 = new polygon(); plg5.add(e1); plg5.add(e9); plg5.add(e10); polygon plg6 = new polygon(); plg6.add(e2); plg6.add(e10); plg6.add(e11); polygon plg7 = new polygon(); plg7.add(e3); plg7.add(e11); plg7.add(e12); polygon plg8 = new polygon(); plg1.add(e4); plg1.add(e9); plg1.add(e12); polyhedron res = new polyhedron(); res.add(plg1); res.add(plg2); res.add(plg3); res.add(plg4); res.add(plg5); res.add(plg6); res.add(plg7); res.add(plg8); return(res); }
public void SetCharHeight(point3d height) { pr = height; }
public static point3d Rotate(point3d vector, point3d axis, float angle) { axisrotate(ref vector, ref axis, angle); return vector; }