作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
找到多边形中的点是一个常见问题,但是,我不明白为什么许多人为本初子午线、赤道和国际日期变更线创建了边缘情况。本初子午线以西的点的负值和本初子午线以东的点的正值不会解决任何问题吗?
下面的函数尝试查看矩形内是否存在一个点(即它使用两个点来确定矩形)。它不会对本初子午线或赤道进行任何检查,到目前为止,我还没有找到我的函数失败的单一边缘情况。我是否遗漏了一些东西,或者有许多程序员不必要地尝试处理这种边缘情况?
任何人都可以找到任何边缘情况,其中以下函数本应返回 true/false,反之亦然?我假设如果有人确实找到了一个,它会处理本初子午线、赤道或国际日期变更线之间的一点。
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
typedef struct point_s
{
long latitude;
long longitude;
} point_t;
bool find_point_on_plane(point_t *, point_t *, point_t *);
int main(int argc, char * argv[])
{
point_t * london = (point_t *) malloc(sizeof(point_t));
point_t * cambridge = (point_t *) malloc(sizeof(point_t));
point_t * x = (point_t *) malloc(sizeof(point_t));
london->latitude = 51.5074;
london->longitude = -.1278;
cambridge->latitude = 52.2053;
cambridge->longitude = 0.1218;
x->latitude = 52.0;
x->longitude = 0.0;
find_point_on_plane(london, cambridge, x) ? printf("True.\n") : printf("False.\n");
return 0;
}
bool find_point_on_plane(point_t * lower_left, point_t * upper_right, point_t * x)
{
if(x->latitude <= upper_right->latitude &&
x->latitude >= lower_left->latitude &&
x->longitude <= upper_right->longitude &&
x->longitude >= lower_left->longitude)
{
return true;
}
return false;
}
最佳答案
关于C:在矩形(本初子午线、赤道等)内查找点的边缘情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37958440/
我是一名优秀的程序员,十分优秀!