示例#1
0
 public edge(Graphics g, PictureBox pb, ref point3d p1, ref point3d p2)
 {
     this.p1 = p1;
     this.p2 = p2;
     this.g  = g;
     this.pb = pb;
 }
示例#2
0
文件: pl.cs 项目: Mexahoid/CSF
 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);
 }
示例#3
0
        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);
        }
示例#4
0
 extern static void axisrotate(ref point3d vector, ref point3d axis, float angle);
示例#5
0
        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);
        }
示例#6
0
 static extern void fflip(ref point3d p);
示例#7
0
文件: pl.cs 项目: Mexahoid/CSF
 public polygon(Brush color, point3d[] points)
 {
     this.color = color;
     this.points = points;
 }
示例#8
0
 static extern void axisrotate(ref point3d vector, ref point3d axis, float angle);
示例#9
0
 public void SetCharWidth(point3d width)
 {
     pd = width;
 }
示例#10
0
 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);
示例#11
0
 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);
示例#12
0
 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);
示例#13
0
 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);
示例#14
0
 [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);
示例#15
0
 protected static extern void voxie_printalph(ref voxie_frame_t vf, ref point3d p, ref point3d r, ref point3d d,
                                              int col, byte[] st);
示例#16
0
 public static point3d Rotate(point3d vector, point3d axis, float angle)
 {
     axisrotate(ref vector, ref axis, angle);
     return(vector);
 }
示例#17
0
 public void SetLocation(point3d position)
 {
     pp = position;
 }
示例#18
0
        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);
        }
示例#19
0
 public void SetCharHeight(point3d height)
 {
     pr = height;
 }
示例#20
0
 public static point3d Rotate(point3d vector, point3d axis, float angle)
 {
     axisrotate(ref vector, ref axis, angle);
     return vector;
 }