private void Update() { if (_followTarget) { transform.position = _followTarget.position + _followOffset + Vector3.up * (_currentCircle.LineWidth / 2f); } if (_lineRenderer.enabled) { if (_lineRenderer.positionCount != _resolution) { _lineRenderer.positionCount = _resolution; } float anglePerCount = 360f / ((float)_resolution); for (int i = 0; i < _resolution; i++) { float currentAngle = anglePerCount * (float)i; currentAngle *= Mathf.Deg2Rad; Vector3 unitVector = new Vector3(Mathf.Cos(currentAngle), 0f, Mathf.Sin(currentAngle)); _lineRenderer.SetPosition(i, _transform.position + (unitVector * _currentCircle.Radius)); } _lineRenderer.widthMultiplier = _currentCircle.LineWidth; CircleProperties updatedCircle = _currentCircle; updatedCircle.Radius = Mathf.Lerp(_currentCircle.Radius, _targetCircle.Radius, _lerpSpeed * Time.unscaledDeltaTime); updatedCircle.LineWidth = Mathf.Lerp(_currentCircle.LineWidth, _targetCircle.LineWidth, _lerpSpeed * Time.unscaledDeltaTime); _currentCircle = updatedCircle; } }
public static void Main(string[] args) { var firstCircleInput = Console.ReadLine().Split(' ').Select(double.Parse).ToArray(); var secondCircleInput = Console.ReadLine().Split(' ').Select(double.Parse).ToArray(); var firstCircle = new CircleProperties() { X = firstCircleInput[0], y = firstCircleInput[1], radius = firstCircleInput[2], }; var secondCircle = new CircleProperties() { X = secondCircleInput[0], y = secondCircleInput[1], radius = secondCircleInput[2] }; bool intercect = intersect(firstCircle, secondCircle); if (intercect) { Console.WriteLine("Yes"); } else { Console.WriteLine("No"); } }
private void OnCircleParametersResult(GetTitleDataResult obj) { Debug.Log("Getting Circle Parameters"); circleProperties = JsonUtility.FromJson <CircleProperties>(obj.Data["CircleParameters"]); SetCircleParametersPlayerPrefs(); //Debug.Log("circleProperties Time : " + circleProperties.InitialTime + " " + circleProperties.MinimumTime +" " + circleProperties.TimeReduceAmount); //Debug.Log("circleProperties Scale : " + circleProperties.MaxScaleTollerance + " " + circleProperties.MinScaleTollerance +" " + circleProperties.PerfectScaleMaximum + " " + circleProperties.PerfectScaleMinimum); }
static bool intersect(CircleProperties circle1, CircleProperties circle2) { double distance = Math.Abs(circle1.X - circle2.X) + Math.Abs(circle1.y - circle2.y); if (distance <= circle1.radius + circle2.radius) { return(true); } else { return(false); } }
private void CircleProperties_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (ht != null) { CircleProperties cp = (sender as CircleProperties); if (e.PropertyName.Equals("radius")) { ht.Radius = cp.Radius; } else if (e.PropertyName.Equals("coorOriginal")) { ht.Point = ToaDo.NguoiDungMayTinh(cp.CoorOriginal); } } }
private void Button_MouseDown(object sender, MouseEventArgs e) { Button btn = sender as Button; if (btn.Tag.Equals("Circle")) { CircleProperties circleProperties = new CircleProperties(this.pnl_Tb_2D.Size); circleProperties.PropertyChanged += CircleProperties_PropertyChanged; this.pnl_ToolBox.Controls.Add(circleProperties); circleProperties.BringToFront(); ht = new HinhTron(new Point(550, 320), 10); circleProperties.CoorOriginal = ToaDo.MayTinhNguoiDung(new Point(550, 320)); circleProperties.Radius = 10; ht.Draw(picb_2DArea.CreateGraphics()); ht.PropertyChanged += Ht_PropertyChanged; } else if (btn.Tag.Equals("Clock")) { clockProperties = new ClockProperties(); clockProperties.PropertyChanged += ClockProperties_PropertyChanged; this.pnl_ToolBox.Controls.Add(clockProperties); if (flagXe == false) { clockProperties.Refresh(); } clockProperties.BringToFront(); DateTime dt = DateTime.Now; clock = new Clock(new Point(0, 0), 15, dt); clock.CurrentDatetime = new DateTime(2019, 05, 19, 12, 30, 15); clock.Draw(this.picb_2DArea.CreateGraphics()); clock.PropertyChanged += Clock_PropertyChanged; } else if (btn.Tag.Equals("TimePiece")) { timepieceProperties = new TimepieceProperties(); timepieceProperties.PropertyChanged += TimepieceProperties_PropertyChanged; this.pnl_ToolBox.Controls.Add(timepieceProperties); timepieceProperties.BringToFront(); timepiece = new Timepiece(); timepiece.PropertyChanged += Timepiece_PropertyChanged; } else if (btn.Tag.Equals("Car")) { this.timer1.Start(); xe = new XeProperties(); flagXe = true; hinhXe = new HinhXe(); this.pnl_ToolBox.Controls.Add(xe); xe.BringToFront(); xe.Visible = true; xe.PropertyChanged += Xe_PropertyChanged; //if (flagXe) //{ // // biểu diễn các hoạt động của xe // hinhXe.PropertyChanged += HinhXe_PropertyChanged; // hinhXe.ToMau(e.Graphics); // hinhXe.drawCar(e.Graphics); // if (dem <= 30) // { // dem++; // // tịnh tiến 5 đơn vị // // đi phải qua trái // hinhXe.traslationXe(5, 0); // hinhXe.quayBanhXe(30); // } // else if (dem <= 60) // { // dem++; // //tịnh tiến 5 đơn vị // // đi phải qua trái // hinhXe.traslationXe(0, 5); // hinhXe.quayBanhXe(30); // } // else if (dem <= 90) // { // dem++; // // đi từ trên xuống dưới // hinhXe.traslationXe(-5, 0); // hinhXe.quayBanhXe(-30); // } // else if (dem <= 120) // { // dem++; // // đi từ dưới lên trên // hinhXe.traslationXe(0, -5); // hinhXe.quayBanhXe(-30); // }else // { // // cập nhật lại // dem = 0; // } //} } }
public void SetCircle(float radius, float lineWidth) { _lineRenderer.enabled = true; _targetCircle = new CircleProperties(radius, lineWidth); }
public void TurnOff() { _lineRenderer.enabled = false; _targetCircle = new CircleProperties(1f, 0.5f); }