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 算力,解读结果公开显示在下面。
还没有人解读过这个文件。