资源简介

3D矩形旋转,GDI+,另类的设计,以便不时之需。

资源截图

代码片段和文件信息

//Visit http://vckicks.110mb.com/ for more free code
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;

namespace EulerRotation
{
    public partial class Form1 : Form
    {
        Cube cube;

        public Form1()
        {
            InitializeComponent();
        }

        private void btnReset_Click(object sender EventArgs e)
        {
            tX.Value = 0;
            tY.Value = 0;
            tZ.Value = 0;
            render();
        }

        private void Form1_Load(object sender EventArgs e)
        {
            cube = new Cube(100);
            render();
        }

        private void render()
        {
            //Set the rotation values
            cube.RotateX = tX.Value;
            cube.RotateY = tY.Value;
            cube.RotateZ = tZ.Value;

            //Cube is positioned based on center
            Point origin = new Point(picCube.Width / 2 picCube.Height / 2);

            picCube.Image = cube.drawCube(origin);
        }

        private void tX_Scroll(object sender EventArgs e)
        {
            render();
        }

        private void tY_Scroll(object sender EventArgs e)
        {
            render();
        }

        private void tZ_Scroll(object sender EventArgs e)
        {
            render();
        }
    }

    internal class Math3D
    {
        public class Point3D
        {
            //The Point3D class is rather simple just keeps track of X Y and Z values
            //and being a class it can be adjusted to be comparable
            public double X;
            public double Y;
            public double Z;

            public Point3D(int x int y int z)
            {
                X = x;
                Y = y;
                Z = z;
            }

            public Point3D(float x float y float z)
            {
                X = (double)x;
                Y = (double)y;
                Z = (double)z;
            }

            public Point3D(double x double y double z)
            {
                X = x;
                Y = y;
                Z = z;
            }

            public Point3D()
            {
            }

            public override string ToString()
            {
                return “(“ + X.ToString() + “ “ + Y.ToString() + “ “ + Z.ToString() + “)“;
            }
        }

        public class Camera
        {
            //For 3D drawing we need a point of perspective thus the Camera
            public Point3D Position = new Point3D();
        }

        public static Point3D RotateX(Point3D point3D double degrees)
        {
            //Here we use Euler‘s matrix formula for rotating a 3D point x degrees around the x-axis

    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        3331  2008-01-01 06:49  EulerRotation\EulerRotation.csproj
     文件       28672  2008-01-01 06:52  EulerRotation\EulerRotation.exe
     文件       15991  2008-01-01 06:52  EulerRotation\Form1.cs
     文件        7114  2008-01-01 06:52  EulerRotation\Form1.Designer.cs
     文件        5814  2008-01-01 06:52  EulerRotation\Form1.resx
     文件         480  2007-12-28 05:57  EulerRotation\Program.cs
     目录           0  2008-01-01 06:54  EulerRotation\Properties\
     文件        1300  2007-12-28 05:57  EulerRotation\Properties\AssemblyInfo.cs
     文件        2854  2007-12-28 05:57  EulerRotation\Properties\Resources.Designer.cs
     文件        5350  2007-12-28 05:57  EulerRotation\Properties\Resources.resx
     文件        1097  2007-12-28 05:57  EulerRotation\Properties\Settings.Designer.cs
     文件         249  2007-12-28 05:57  EulerRotation\Properties\Settings.settings
     目录           0  2008-01-01 06:54  EulerRotation\

评论

共有 条评论