我试图画一个圆弧,基于两个给定的点和一个给定的高度来描述一个圆段。为了实现这一点,我将使用java.awt.graphics中的以下方法。
drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
首先,我观察到x、y、width和height值描述了一个包含圆的矩形。
圆弧的中心是原点为(x,y)的矩形的中心,其大小由width和height参数指定。(http://docs.oracle.com/javase/7/docs/api/java/awt/graphics.html)
int dx = p1.x- p2.x;
int dy = p1.y - p2.y;
double len = Math.sqrt(Math.pow((double)dx, 2) + Math.pow((double)dy, 2));
radius = h/2 + len^2 / 8h
x = centerPoint.x - radius;
y = centerPoint.y - radius;
width = radius * 2;
height = radius * 2;
提前感谢!
在弦的一半长度,弧(也称为矢)的高度和半径之间有一个众所周知的关系(例如,见这里)。设弦长(p1与p2之间的距离为l=2d,弧高为h,半径为r
r=(d2+h2)/(2h)
圆心在弦的垂直平分线上,与弦的距离为r-h,与弧的相对侧。1然后可以使用标准的反三角函数来获得弦的起始角和结束角。
我查阅了多个用不同形式的数学(微积分、几何、三角学等)编写的示例,但无法将其中任何一个转换为代码。我的理解是,给出的值产生两个不同的中心/交点。这些就是我需要弄清楚的。 这个解释器是在Arduino上运行的,用C语言编写的,如果有人能用伪代码来指导我,我会非常感激的。 谢了!
我已经10年没做过这样的数学了...我正在编程一个2D游戏和移动一个球员周围。当我移动播放器时,我试图计算离播放器位置200像素的圆上的点,给定-360到360之间的正或负角度(度)。屏幕是1280x720,0,0是屏幕的中心点。玩家在整个笛卡尔坐标系中移动。我试图找到的点可以不在屏幕上。 我尝试了文章中用半径和角度找到点的公式,但我不相信我理解了什么是“角度”,因为当我把角度作为-360到360
我有一个2F长度的柱面,和RotX和RotZ的数据,由用户给出。我也知道我的圆柱体的“底”在(0,0,0)(形成“底”的圆心) 我需要的是计算“顶”点(另一端的圆心),在上面的线条中暴露数据。 在我的第二幅图像中,A点计算如下(sin(zAngle),cos(zAngle),sin(xAngle),zAngle=pi/4(alpha角)和xAngle=0。 点B计算为(sin(xAngle),co
我正在研究一个问题,基本上可以归结为以下几点: 给定: null 对于这样一个位置,有什么算法的想法吗?我最终将使用java实现,但我可以使用PsuedoCode。
我确实看到了这个StackOverflow,它似乎是一个类似的问题:在一个圆形扇区中有效地找到点,我用Java实现了它,但如果没有向量,它似乎就不能翻译,我对数学有点困惑,不能让它工作。 我一直试图解决这个问题,我希望任何类型的实现的帮助(不要介意添加触发计算),以及任何理解问题的帮助。谢谢!!
我怎样才能得到圆心和半径给定的圆的东北和西南坐标?我在任何地方都找不到任何解决办法。目前,Circle对象不像以前那样具有getLatLngBounds()和getBounds()方法。