Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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 });
        }
Esempio n. 3
0
        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
        }
Esempio n. 4
0
        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();
            }
        }
Esempio n. 5
0
 // 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);
         }
     }
 }
Esempio n. 6
0
        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
        }
Esempio n. 7
0
 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
 }
Esempio n. 8
0
 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);
 }
Esempio n. 11
0
        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));
            }
        }
Esempio n. 12
0
 public NullFramable()
 {
     TracePoints    = new TracePoint[0];
     Transformation = new TranslateTransformation(new Point(0, 0));
     Name           = "Null";
 }
Esempio n. 13
0
        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);
 }
Esempio n. 15
0
 public TracedStream(Stream inner, string tracePointName)
 {
     _inner      = inner;
     _tracePoint = new TracePoint(tracePointName);
 }