コード例 #1
0
ファイル: Cuboid.cs プロジェクト: PlumpMath/Cross.Drawing
 private void setupFilter()
 {
     for (int i = 0; i < 6; i++)
     {
         filters[i]        = new FreeTransform();
         filters[i].Bitmap = bmp[i];
     }
 }
コード例 #2
0
    public void Initialize3dPut(AlphaForm _firstObj, AlphaForm _secondObj, Point origin, int _first, int _second, int _type)
    {
        _getPutFormInfo(_firstObj);
        _getPutFormInfo(_secondObj);
        Bitmap firstBmp  = _formList[_first].listImg;
        Bitmap secondBmp = _formList[_second].listImg;

        _w   = _formList[_first].listImg.Width;
        _h   = _formList[_first].listImg.Height;
        type = _type;
        cube = new Cube(firstBmp.Width, firstBmp.Height, 1);
        for (int i = 0; i < 90; i++)
        {
            if (_type == 0)
            {
                cube.RotateY = i * 2;
            }
            if (_type == 1)
            {
                cube.RotateX = i * 2;
            }
            cube.calcCube(origin);
            corners[i, 0] = cube.d;
            corners[i, 1] = cube.a;
            corners[i, 2] = cube.c;
            corners[i, 3] = cube.b;
            int t = 0;
            if (_type == 0)
            {
                if ((corners[i, 0].X - corners[i, 1].X) <= 1)
                {
                    if (corners[i, 0].Y < corners[i, 1].Y)
                    {
                        t = corners[i, 0].Y;
                    }
                    else
                    {
                        t = corners[i, 1].Y;
                    }
                    set[i] = new PointF(corners[i, 0].X + _w / 2, t + _h / 2);
                }
                else
                {
                    if (corners[i, 1].Y < corners[i, 0].Y)
                    {
                        t = corners[i, 1].Y;
                    }
                    else
                    {
                        t = corners[i, 0].Y;
                    }
                    set[i] = new PointF(corners[i, 1].X + _w / 2, t + _h / 2);
                }
            }
            if (_type == 1)
            {
                if ((corners[i, 0].Y - corners[i, 2].Y) <= 1)
                {
                    if (corners[i, 0].Y < corners[i, 2].Y)
                    {
                        t = corners[i, 0].Y;
                    }
                    else
                    {
                        t = corners[i, 2].Y;
                    }
                    set[i] = new PointF(corners[i, 0].X + _w / 2, t + _h / 2);
                }
                else
                {
                    if (corners[i, 2].Y < corners[i, 0].Y)
                    {
                        t = corners[i, 2].Y;
                    }
                    else
                    {
                        t = corners[i, 0].Y;
                    }
                    set[i] = new PointF(corners[i, 0].X + _w / 2, t + _h / 2);
                }
            }
            filters[i] = new FreeTransform();
            if (i < 45)
            {
                filters[i].Bitmap = firstBmp;
            }
            else
            {
                filters[i].Bitmap = secondBmp;
            }
        }
        Parallel.For(0, 90, (i) => { updateImage(i); });
    }
コード例 #3
0
    public void Initialize3dEffect(Point origin, int _first, int _second, int rotationType, double transparency, int speed)
    {
        Thread check_all = new Thread(ck_All);

        check_all.Start();

        Bitmap firstBmp  = _formList[_first].listImg;
        Bitmap secondBmp = _formList[_second].listImg;

        _w = _formList[_first].listImg.Width;
        _h = _formList[_first].listImg.Height;

        Put_form = new PerPixelAlphaForm();
        Put_form.ShowInTaskbar = false;
        Put_form.ShowIcon      = false;
        _rotationtype          = rotationType;
        _speed        = speed;
        _transparency = transparency * 255;

        cube = new Cube(firstBmp.Width, firstBmp.Height, 1);
        for (int i = 0; i < 90; i++)
        {
            cube.RotateY = i * 2;
            cube.calcCube(origin);
            corners[i, 0] = cube.d;
            corners[i, 1] = cube.a;
            corners[i, 2] = cube.c;
            corners[i, 3] = cube.b;
            int t = 0;
            if ((corners[i, 0].X - corners[i, 1].X) <= 1)
            {
                if (corners[i, 0].Y < corners[i, 1].Y)
                {
                    t = corners[i, 0].Y;
                }
                else
                {
                    t = corners[i, 1].Y;
                }
                set[i] = new PointF(corners[i, 0].X + _w / 2, t + _h / 2);
            }
            else
            {
                if (corners[i, 1].Y < corners[i, 0].Y)
                {
                    t = corners[i, 1].Y;
                }
                else
                {
                    t = corners[i, 0].Y;
                }
                set[i] = new PointF(corners[i, 1].X + _w / 2, t + _h / 2);
            }
            begin[i]   = false;
            filters[i] = new FreeTransform();
            if (i < 45)
            {
                filters[i].Bitmap = firstBmp;
            }
            else
            {
                filters[i].Bitmap = secondBmp;
            }
        }
        for (int i = 0; i < 90; i++)
        {
            rtd[i] = new Thread(getimg);
            rtd[i].Start(i);
        }
    }
コード例 #4
0
    public void InitializeSwitchEffect(Control _obj, Point origin, int _flag, int switchType, int speed, MouseEventHandler _click)
    {
        firstBmp    = SQK_Ui.switchButton.switchResource.switch1_a;
        secondBmp   = SQK_Ui.switchButton.switchResource.switch1_b;
        _origin     = origin;
        _speed      = speed;
        switch_flag = _flag;

        switch (switchType)
        {
        case 0:
            firstBmp  = SQK_Ui.switchButton.switchResource.switch1_a;
            secondBmp = SQK_Ui.switchButton.switchResource.switch1_b;
            break;

        case 1:
            firstBmp  = SQK_Ui.switchButton.switchResource.switch2_a;
            secondBmp = SQK_Ui.switchButton.switchResource.switch2_b;
            break;

        case 2:
            firstBmp  = SQK_Ui.switchButton.switchResource.switch3_a;
            secondBmp = SQK_Ui.switchButton.switchResource.switch3_b;
            break;

        default:
            break;
        }
        _w = firstBmp.Width;
        _h = firstBmp.Height;

        Point lc = new Point(0, 0);

        cube = new Cube(_w, _h, 1);
        for (int i = 0; i < 90; i++)
        {
            cube.RotateY = i * 2;
            cube.calcCube(lc);
            corners[i, 0] = cube.d;
            corners[i, 1] = cube.a;
            corners[i, 2] = cube.c;
            corners[i, 3] = cube.b;
            int t = 0;
            if ((corners[i, 0].X - corners[i, 1].X) <= 1)
            {
                if (corners[i, 0].Y < corners[i, 1].Y)
                {
                    t = corners[i, 0].Y;
                }
                else
                {
                    t = corners[i, 1].Y;
                }
                set[i] = new PointF(corners[i, 0].X + _w / 2, t + _h / 2);
            }
            else
            {
                if (corners[i, 1].Y < corners[i, 0].Y)
                {
                    t = corners[i, 1].Y;
                }
                else
                {
                    t = corners[i, 0].Y;
                }
                set[i] = new PointF(corners[i, 1].X + _w / 2, t + _h / 2);
            }
            begin[i]   = false;
            filters[i] = new FreeTransform();
            if (i < 45)
            {
                filters[i].Bitmap = firstBmp;
            }
            else
            {
                filters[i].Bitmap = secondBmp;
            }
        }

        Parallel.For(0, 90, (i) => { updateImage(i); });

        switchPanel           = new UiControlsMethod.PanelEx();
        switchPanel.Size      = new Size(_w, _h);
        switchPanel.Location  = origin;
        switchPanel.BackColor = Color.Transparent;

        picSwitch           = new UiControlsMethod.PictureBoxEx();
        picSwitch.BackColor = Color.Transparent;
        picSwitch.Size      = new Size(_w, _h);
        picSwitch.Location  = new Point(0, 0);
        if (_flag == 0)
        {
            picSwitch.Image = firstBmp;
        }
        else
        {
            picSwitch.Image = secondBmp;
        }
        picSwitch.Click      += new EventHandler(picSwitch_Click);
        picSwitch.MouseClick += _click;
        picSwitch.Cursor      = Cursors.Hand;

        switchPanel.Controls.Add(picSwitch);

        _obj.Controls.Add(switchPanel);
    }