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