CubePainter.cs

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Cube.Data;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace CubeForm
{
    class CubePainter
    {
        private Cube.Data.Cube cube;
        private Graphics graphics;
        private int size = 55;
        private int leak = 3;
        public CubePainter(Cube.Data.Cube cube, Graphics g)
        {
            this.cube = cube;
            graphics = g;
        }

        /// <summary>
        /// X斜二测坐标转换为直角坐标
        /// </summary>
        public PointF ScaleTransformX(PointF point, PointF offset)
        {
            var a = 0.35355339059327; //四分之根号2
            var x = point.X * a + offset.X;
            var y = point.Y - point.X * a + offset.Y; 
            return new PointF((float)x, (float)y);
        }

        /// <summary>
        /// Y斜二测坐标转换为直角坐标
        /// </summary>
        public PointF ScaleTransformY(PointF point, PointF offset)
        {
            var a = 0.35355339059327; //四分之根号2
            var x = point.X - point.Y * a + offset.X + a * 3 * size + leak;
            var y = point.Y * a + offset.Y + (1 - a) * 3 * size + leak;
            return new PointF((float)x, (float)y);
        }

        public void Draw()
        {
            var startPoint = new Point(0, 0);
            var up = cube.GetFace(Faces.Up);
            var right = cube.GetFace(Faces.Right);
            var front = cube.GetFace(Faces.Front);
            DrawFace(up, new Point(startPoint.X + 4 * (size + leak), startPoint.Y + (size + leak)), ScaleType.Y);
            DrawFace(front, new Point(startPoint.X + 4 * (size + leak), startPoint.Y + 4 * (size + leak)), ScaleType.Normal);
            DrawFace(right, new Point(startPoint.X + 7 * (size + leak), startPoint.Y + 4 * (size + leak)), ScaleType.X);
        }

        private void DrawFace(CubeColor[,] face, Point s, ScaleType scale)
        {
            var startX = s.X;
后面还有 63 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。