1 Xử lý: Mã Arc chỉ tạo vòng tròn. Cách xác định giá trị bắt đầu và dừng chính xác

câu hỏi được tạo ra tại Wed, May 8, 2019 12:00 AM

Tôi cần tạo một "vòng cung" trong mã này. Tôi đã làm việc với một số mã khác để tạo thành công một vòng tròn, nhưng tôi không thể hiểu cách triển khai các giá trị bắt đầu và dừng một cách chính xác.

Về cơ bản, mã hiện đang tạo một vòng tròn tĩnh và tôi không biết phải làm gì.

Đây là một phần của tệp lớn hơn, nhưng tôi không nghĩ phần còn lại có liên quan. Hãy cho tôi biết nếu tôi nên thêm phần còn lại.

class UIArc{
  float a, b, c, d, start, stop;
  public UIArc(float a, float b, float c, float d, float start, float stop){
    setArc(a, b, c, d, start, stop);
  }
  public UIArc(PVector p1, PVector p2){
    setArc(p1.x, p1.y, p2.x, p2.y, 90, 180);
  }
  void setArc(float a, float b, float c, float d, float start, float stop){
    this.a = min(a, c);
    this.b = min(b, d);
    this.c = max(a, c);
    this.d = max(b, d);
  }
  PVector getCentre(){
    float cx = (this.c - this.a)/2.0;
    float cy = (this.d = this.b)/2.0;
    return new PVector(cx, cy);
  }
  boolean isBetweenInc(float v, float lo, float hi){
    if(v >= lo && v <= hi) return true;
  return false;
  }
  boolean isPointInside(PVector p){
    if(isBetweenInc(p.x, this.a, this.c) && isBetweenInc(p.y, this.b, this.d))return true;
    return false;
  }
  float getWidth(){
    return(this.c - this.a);
  }
  float getHeight(){
    return(this.d - this.b);
  }
}
    
4
1 Câu trả lời                              1                         

Tôi giả sử rằng góc của cung được đặt theo độ:

setArc(p1.x, p1.y, p2.x, p2.y, 90, 180);
. Sử dụng
nguồn đặt đây