public static IEnumerable <TracePoint> TakeAA(Point start, Match match) { var x0 = Convert.ToInt32(match.Groups["x0"].Value); var y0 = Convert.ToInt32(match.Groups["y0"].Value); var v = Convert.ToInt32(match.Groups["v"].Value); var x = start.X; var y = start.Y; if (Math.Abs(v) % 360 == 0) { return(null); } var d = Math.Abs(v) % 360 / 5; if (d * 5 < Math.Abs(v) % 360) { d++; } var tracePoints = new List <TracePoint>(); for (var i = 0; i < d; i++) { var s = (i == d - 1 ? Math.Abs(v) % 360 - 5 * (d - 1) : 5) * Math.Sign(v); var nx = x0 + (x - x0) * Math.Cos(s * Math.PI / 180) - (y - y0) * Math.Sin(s * Math.PI / 180); var ny = y0 + (x - x0) * Math.Sin(s * Math.PI / 180) + (y - y0) * Math.Cos(s * Math.PI / 180); x = nx; y = ny; var tracePoint = new TracePoint(new Point(x, y), true); tracePoints.Add(tracePoint); } return(tracePoints); }
public static IEnumerable <TracePoint> TakePU(Match match) { var x = Convert.ToDouble(match.Groups["x"].Value); var y = Convert.ToDouble(match.Groups["y"].Value); var tracePoint = new TracePoint(new Point(x, y), false); return(new[] { tracePoint }); }
public static void Leave() { #if DEBUG TracePoint tracePoint = (TracePoint)tracePoints.Pop(); ulong now = timing.GetTickCount(); Debug.WriteLine((now - timing.BirthTick).ToString() + ": " + tracePoint.Message + " (" + (now - tracePoint.Timestamp).ToString() + "ms)"); #endif }
private void AppendNext() { if (curLength == 0 && TracePosTransform != null) { this.TracePos = this.TracePosTransform.position; } // find closest TracePoint closest = GetNearest(this.TracePos); if (closest == null) { return; } if (curLength == 0 && this.MaxInitialDistance > 0.0f && (closest.pos - this.TracePos).magnitude > this.MaxInitialDistance) { this.FailMaxInitialDistance.Invoke(); return; } if (this.MaxDistance > 0.0f && (closest.pos - this.TracePos).magnitude > this.MaxDistance) { this.FailMaxDistance.Invoke(); return; } TracePoints[curLength] = closest; // move TracePos "forward" //Vector3 prevpos = curLength == 0 ? TracePos : TracePoints[curLength - 1].pos; this.TracePos = this.TracePos = closest.pos; //closest.pos + (closest.pos - prev); // update all "following" points curLength += 1; for (uint i = curLength; i < TracePoints.Length; i++) { TracePoints[i].index = closest.index; TracePoints[i].pos = closest.pos; } // write all our recorded positions if (!this.RealtimePositions) { Vector3[] positions = (from p in TracePoints select p.pos).ToArray(); TraceBuffer.SetData(positions); } #if UNITY_EDITOR this.DebugInfo.CurLength = (int)this.curLength; this.DebugInfo.Points = this.TracePoints; #endif if (curLength == MaxLength) { this.MaxLengthEvent.Invoke(); } }
// Use this for initialization void Start() { tracePoints = new List <TracePoint>(); foreach (Transform c in transform) { TracePoint t = c.gameObject.GetComponent <TracePoint>(); if (t != null) { tracePoints.Add(t); } } }
public static void Enter() { #if DEBUG StackTrace trace = new StackTrace(); StackFrame parentFrame = trace.GetFrame(1); MethodBase parentMethod = parentFrame.GetMethod(); ulong now = timing.GetTickCount(); string msg = new string(' ', 4 * tracePoints.Count) + parentMethod.DeclaringType.Name + "." + parentMethod.Name; Debug.WriteLine((now - timing.BirthTick).ToString() + ": " + msg); TracePoint tracePoint = new TracePoint(msg, now); tracePoints.Push(tracePoint); #endif }
public static void Enter() { #if DEBUG StackTrace trace = new StackTrace(); StackFrame parentFrame = trace.GetFrame(1); MethodBase parentMethod = parentFrame.GetMethod(); ulong now = timing.GetTickCount(); string msg = new string(' ', 4 * tracePoints.Count) + parentMethod.DeclaringType.Name + "." + parentMethod.Name; WriteLine((now - timing.BirthTick).ToString() + ": " + msg); TracePoint tracePoint = new TracePoint(msg, now); tracePoints.Push(tracePoint); #endif }
public TracePoint(TracePointType t, Vector3 p, TracePoint PrevTP = null) { Type = t; Pos = p; if (PrevTP == null) { Dist = 0.0f; } else { Dist = PrevTP.Dist; Dist += (Pos - PrevTP.Pos).magnitude; } }
/// <summary> /// Prepares the point tooltip. /// </summary> protected string PreparePointToolTip( TracePoint tracePoint, UnknownFeatureIonInstanceItem unknownCompoundInstanceItem, RetentionTimeRasterItem retentionTimeRasterItem, WorkflowInputFile workflowInputFile, string studyFileID) { return(string.Format( "MW: {0:F5} [Da]\nArea: {1:F0}\nRT: {2:F2} [min]\nIntensity: {3:F0} [count]\nFile: {4}", unknownCompoundInstanceItem.MolecularWeight, unknownCompoundInstanceItem.Area, tracePoint.Time, tracePoint.Intensity, workflowInputFile.FileName)); }
/// <summary> /// Prepares the point tooltip. /// </summary> protected string PreparePointToolTip( TracePoint tracePoint, UnknownFeatureIonInstanceItem unknownCompoundInstanceItem, RetentionTimeRasterItem retentionTimeRasterItem, WorkflowInputFile workflowInputFile, string studyFileID) { return string.Format( "MW: {0:F5} [Da]\nArea: {1:F0}\nRT: {2:F2} [min]\nIntensity: {3:F0} [count]\nFile: {4}", unknownCompoundInstanceItem.MolecularWeight, unknownCompoundInstanceItem.Area, tracePoint.Time, tracePoint.Intensity, workflowInputFile.FileName); }
private void Init(uint maxlen) { if (TraceBuffer != null) { TraceBuffer.Release(); TraceBuffer.Dispose(); } TraceBuffer = Populators.Utils.Create(new Vector3[MaxLength]); Trace.Set(TraceBuffer); TracePoints = new TracePoint[MaxLength]; for (int i = 0; i < MaxLength; i++) { TracePoints[i] = new TracePoint(0, new Vector3(0, 0, 0)); } }
public NullFramable() { TracePoints = new TracePoint[0]; Transformation = new TranslateTransformation(new Point(0, 0)); Name = "Null"; }
public TracePoint[] Count(int distance) { var random = new Random(); var curDistance = 0; var totalSleepTime = 0D; var listX = new List <int>(); var listY = new List <int>(); var listSleepTime = new List <double>(); //先加一个初始点 listX.Add(0); listY.Add(random.Next(-2, 2)); listSleepTime.Add(NextDouble(random, 10, 50)); //curDistance = curDistance + curDistance + random.Next(1, 5); while (Math.Abs(distance - curDistance) > 1) { //模拟加速的一个过程 这是段神奇的代码 var moveX = curDistance + random.Next(1, 5); var moveY = random.Next(-2, 2); var sleepTime = NextDouble(random, 10, 50); listX.Add(moveX); listY.Add(moveY); listSleepTime.Add(sleepTime); curDistance += moveX; totalSleepTime += sleepTime; //如果当前的距离大于等于给的距离退出 if (curDistance >= distance) { break; } } //如果移过头了 最后终点加入 if (curDistance > distance) { listX.Add(distance); listY.Add(random.Next(-2, 2)); listSleepTime.Add(NextDouble(random, 10, 50)); } //长度 var length = listSleepTime.Count; const int maxTotalSleepTime = 5 * 1000; if (totalSleepTime > maxTotalSleepTime) { //统计时间 totalSleepTime = 0.0D; for (var i = 0; i < length; i++) { //按比例缩小时间 listSleepTime[i] = listSleepTime[i] * (maxTotalSleepTime / totalSleepTime); totalSleepTime += listSleepTime[i]; } } //输出总时间 Console.WriteLine($"滑块滑动总时间:{totalSleepTime}"); var tracePoints = new TracePoint[length]; for (var i = 0; i < length; i++) { tracePoints[i] = new TracePoint { XOffset = listX[i], YOffset = listY[i], SleepTime = listSleepTime[i] }; } ////输出轨迹值 //Console.WriteLine("输出轨迹值。"); //for (var i = 0; i < length; i++) //{ // Console.WriteLine($"滑块轨迹;X:{tracePoints[i].XOffset},Y:{tracePoints[i].YOffset},Time:{tracePoints[i].SleepTime}"); //} return(tracePoints); }
public TracedStream(Stream inner, string tracePointName) { _inner = inner; _tracePoint = new TracePoint(tracePointName); }