我无法弄清楚用瓷砖填充梯形的代码。
要做一个矩形很容易,因为x和y从0开始:
for(int y=0; y<10; y++){
for(int x=0; x<10; x++){
//create a tile at (x ; y)
}
}
它呈现如下 - photo
但在梯形中,x和y正在改变每一行 - photo
如何创建x,y循环,使它们像第二张照片一样填充?
答案 0 :(得分:0)
对于矩形,您应该有这两个循环,但对于每个矩形,您应该检查它是否在梯形内部并且如果它已经打印则打印它并且如果它不是则跳到下一个
要检查它是否进入,你需要一些数学。您基本上需要针对所有4条线测试当前的平铺位置。为了方便起见,您可以将瓷砖视为单个点(即瓷砖的中心)。
按位置我的意思是测试瓷砖(点)所在线的哪一侧。因此,如果点从右边线开始,从左边线开始,在顶部线和底线之下,这意味着点(标题)在梯形内部,应该绘制它。
检查一下,它可以帮助你进行数学运算:
How to tell whether a point is to the right or left side of a line