TrackSegments/TrackLineSegment.cs

(开头部分) 3KB

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;

namespace GrandPrix.TrackSegments
{
    public class TrackLineSegment
    {
        static double MARGIN = 200;
        static double CORNER_RADIUS = 100;

        public TrackLineSegment(int index, double milestone, Point point1, Point point2)
        {
            var p1 = new Point(point1.X + MARGIN, point1.Y + MARGIN);
            var p2 = new Point(point2.X + MARGIN, point2.Y + MARGIN);

            this.Index = index;
            this.Milestone = milestone;
            
            this.P1 = p1;
            this.P2 = p2;

            var dX = (p2.X - p1.X);
            var dY = (p2.Y - p1.Y);

            this.Coefficient = dY / dX;

            var h = Math.Sqrt(dX * dX + dY * dY);

            Length = h;

            var cos = dX / h;
            var sin = dY / h;
            var aCos = Math.Acos(cos);
            var aSin = Math.Asin(cos);
            var angle = 0.0;

            angle = 90.0 * (aCos / (Math.PI / 2));

            P3 = new Point(P1.X, P1.Y);
            P4 = new Point(P2.X, P2.Y);

            if (cos > 0.0 && sin > 0.0)
            {
                P3 = new Point(P1.X + cos * CORNER_RADIUS, P1.Y + sin * CORNER_RADIUS);
                P4 = new Point(P2.X - cos * CORNER_RADIUS, P2.Y - sin * CORNER_RADIUS);
                angle = 270.0 - angle;
            }
            else if (cos > 0.0 && sin < 0.0)
            {
                P3 = new Point(P1.X + cos * CORNER_RADIUS, P1.Y + sin * CORNER_RADIUS);
                P4 = new Point(P2.X - cos * CORNER_RADIUS, P2.Y - sin * CORNER_RADIUS);
                angle = 270.0 + angle;
            }
            else if (cos < 0.0 && sin > 0.0)
            {
                P3 = new Point(P1.X + cos * CORNER_RADIUS, P1.Y + sin * CORNER_RADIUS);
                P4 = new Point(P2.X - cos * CORNER_RADIUS, P2.Y - sin * CORNER_RADIUS);
后面还有 58 行代码,解锁后查看完整代码

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

AI 解读 AI

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

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