Java 计算穿过正方形的角度距离

Java 计算穿过正方形的角度距离,java,geometry,Java,Geometry,给定正方形中的一个点,我需要计算该点穿过正方形的距离(一端的进度为0%,另一端的进度为100%)。对于简单的水平(或垂直)遍历,进度仅为X坐标(或Y坐标)除以正方形的大小 但这里是我挣扎的地方:我需要以一定的角度进行遍历,所以一些(度?弧度?)要么向上倾斜,要么向下倾斜。如果这有帮助:所有具有匹配“进度”值的点应形成一条垂直于路径/遍历角度的线 我需要编写这样一个方法(大多数是任何语言),它返回一个介于0和1之间的值: float calculateProgress(float x, float

给定正方形中的一个点,我需要计算该点穿过正方形的距离(一端的进度为0%,另一端的进度为100%)。对于简单的水平(或垂直)遍历,进度仅为X坐标(或Y坐标)除以正方形的大小

但这里是我挣扎的地方:我需要以一定的角度进行遍历,所以一些(度?弧度?)要么向上倾斜,要么向下倾斜。如果这有帮助:所有具有匹配“进度”值的点应形成一条垂直于路径/遍历角度的线

我需要编写这样一个方法(大多数是任何语言),它返回一个介于0和1之间的值:

float calculateProgress(float x, float y, float size, float angle) { }
。。。但不知道从哪里开始

非常感谢您的帮助


编辑/添加描述:对于平坦/水平遍历,报告“50%进度”的点将在正方形中间形成垂直线。但逆时针旋转一点,我希望这些相同的点(现在旋转成一条斜线)报告“50%的进度”,即使上半部分现在位于x/size的左侧,下半部分现在位于x/size的右侧。

您可以通过使用单一语言编程来减少您的困难。将C++和java相结合,可以增加程序的复杂度。当它们与问题特别相关时,应该使用标签。如果你的问题不是特定于任何语言,那么它不应该有语言标签。如果这只是一个数学问题,它不应该完全打开。给定这些参数,你怎么知道平方在哪里?你的要求没有意义。从10度的10x10正方形的(0,0)开始,在x=0.5时会出现0.5的进度值。从相同角度的(0,1)开始,x=5时也会出现0.5的进度值。这些值将形成一条垂直于x轴的线,而不是路径。我的错误是忘记提及屏幕坐标!屏幕上是一个正方形的图像,(0,0)在左上角,(1号,1号)在右下角。我也为这些令人困惑的标签表示歉意,因为它们只是我最熟悉的两种语言。这个特定的应用程序是用Java编写的。