animated 3d graph isometric relative to mouse position

an easy to learn tutorial project

 

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;
namespace _3danimatie{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        int eX = 0;        int eY = 0;        private void Form1_Load(object sender, EventArgs e)        {
        }
        private void pictureBox1_Paint(object sender, PaintEventArgs e)        {            int pas = 1;            Graphics G = e.Graphics;            G.Clear(Color.White);            G.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;            double xx = 400, zz = 400, yy = 400, px = 400, py = 400, pz = 400, zz2 = 400, pz2 = 400, t = 400, pt =            400;            Pen P = new Pen(Color.Black, 1);            int jf = 0;            for (int j = 1; j <= 5; j++)            {                jf = j * 20;                for (int i = 1; i <= 360 + pas; i += pas)                {                    xx = Math.Cos((i + eX) / 57.4) * jf + 400;                    yy = Math.Sin((i + eY) / 57.4) * jf + 400;                    zz = (Math.Cos((i + eX) / 57.4) + Math.Sin((i + eY) / 57.4)) * jf + 400;                    zz2 = (Math.Cos((i + eX) / 57.4) - Math.Sin((i + eY) / 57.4)) * jf + 400;                    t = Math.Tan((i + eX) / 57.4) * (jf / 100) + 400;                    G.DrawLine(P, (int)xx, (int)yy, (int)px, (int)py);                    G.DrawLine(P, (int)zz, (int)yy, (int)pz, (int)py);                    G.DrawLine(P, (int)zz2, (int)yy, (int)pz2, (int)py);                    G.DrawLine(P, (int)t, (int)yy, (int)pt, (int)py);                    G.DrawLine(P, (int)t, (int)xx, (int)pt, (int)px);                    G.DrawLine(P, (int)t, (int)zz, (int)pt, (int)pz);                    G.DrawLine(P, (int)xx, (int)t, (int)xx, (int)pt);                    G.DrawLine(P, (int)xx, (int)zz, (int)xx, (int)pz);                    G.DrawLine(P, (int)zz, (int)xx, (int)pz, (int)px); /**/                    px = xx;                    py = yy;                    pz = zz;                    pz2 = zz2;                    pt = t;                }            }        }
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)        {            eX = e.X / 2;            eY = e.Y / 2;            this.pictureBox1.Refresh();        }    }}

C#
Edit|Remove
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
 
namespace _3danimatie 
{ 
    public partial class Form1 : Form 
    { 
        public Form1() 
        { 
            InitializeComponent(); 
        } 
        int eX = 0; 
        int eY = 0; 
        private void Form1_Load(object sender, EventArgs e) 
        { 
 
        } 
 
        private void pictureBox1_Paint(object sender, PaintEventArgs e) 
        { 
            int pas = 1; 
            Graphics G = e.Graphics; 
            G.Clear(Color.White); 
            G.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; 
            double xx = 400, zz = 400, yy = 400, px = 400, py = 400, pz = 400, zz2 = 400, pz2 = 400, t = 400, pt = 
            400; 
            Pen P = new Pen(Color.Black, 1); 
            int jf = 0; 
            for (int j = 1; j <= 5; j++) 
            { 
                jf = j * 20; 
                for (int i = 1; i <= 360 + pas; i += pas) 
                { 
                    xx = Math.Cos((i + eX) / 57.4) * jf + 400; 
                    yy = Math.Sin((i + eY) / 57.4) * jf + 400; 
                    zz = (Math.Cos((i + eX) / 57.4) + Math.Sin((i + eY) / 57.4)) * jf + 400; 
                    zz2 = (Math.Cos((i + eX) / 57.4) - Math.Sin((i + eY) / 57.4)) * jf + 400; 
                    t = Math.Tan((i + eX) / 57.4) * (jf / 100) + 400; 
                    G.DrawLine(P, (int)xx, (int)yy, (int)px, (int)py); 
                    G.DrawLine(P, (int)zz, (int)yy, (int)pz, (int)py); 
                    G.DrawLine(P, (int)zz2, (int)yy, (int)pz2, (int)py); 
                    G.DrawLine(P, (int)t, (int)yy, (int)pt, (int)py); 
                    G.DrawLine(P, (int)t, (int)xx, (int)pt, (int)px); 
                    G.DrawLine(P, (int)t, (int)zz, (int)pt, (int)pz); 
                    G.DrawLine(P, (int)xx, (int)t, (int)xx, (int)pt); 
                    G.DrawLine(P, (int)xx, (int)zz, (int)xx, (int)pz); 
                    G.DrawLine(P, (int)zz, (int)xx, (int)pz, (int)px); /**/ 
                    px = xx; 
                    py = yy; 
                    pz = zz; 
                    pz2 = zz2; 
                    pt = t; 
                } 
            } 
        } 
 
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e) 
        { 
            eX = e.X / 2; 
            eY = e.Y / 2; 
            this.pictureBox1.Refresh(); 
        } 
    } 
}