gpt4 book ai didi

java - 处理:弧码只创建圆。如何正确识别起始值和终止值

转载 作者:搜寻专家 更新时间:2023-11-01 03:45:52 25 4
gpt4 key购买 nike

我需要在这段代码中创建一个“弧线”。我一直在处理其他一些成功创建圆圈的代码,但我无法理解如何正确实现开始值和结束值。

基本上,代码目前仍在创建一个圆圈,我不确定该怎么做。

这是一个较大文件的一部分,但我认为其余部分无关紧要。让我知道是否应该添加其余部分。

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);
}
}

最佳答案

我假设圆弧的角度以度为单位设置:

setArc(p1.x, p1.y, p2.x, p2.y, 90, 180);

但是角度必须传递给 arc()函数以弧度而不是度为单位。使用 radians()将度数转换为弧度。

例如

class UIArc{

// [...]

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);
this.start = start;
this.stop = stop;
}

void draw() {
arc(this.a, this.b, this.c, this.c,
radians(this.start), radians(this.stop));
}
}

关于java - 处理:弧码只创建圆。如何正确识别起始值和终止值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56044506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com