希望这个下集里能有完整的代码
一、containsPoint实现
mac系统里似乎不接受我们的驼峰命名,所以这个函数应该是contains_point
代码段如下,出现的问题0.05后Statement expected, found Py:DEDENT,完又遇到这个哥们了
def get_x(self):
return self.__x
def get_y(self):
return self.__y
# 实现另一个矩形的x,y坐标与当前矩形x,y对比
def contains_points(self, other_x, other_y):
a_t_valid = other_x - self.__x
b_t_valid = other_y - self.__y
a = (pow(a_t_valid, 2) + pow(b_t_valid, 2)) * 0.05
二、我要解决这个哥哥
先从网上找一下Statement expected, found Py:DEDENT
语句预期,发现Py:DEDEN Statement expected, found Py:DEDENT
AI解释的.我看不懂.估计是阅读恐惧问题.
我想想从里面找找我能看到的地方吧
TAB还是空格呢??
记得有人说.用空格的程序员很宝贵,要比用TAB的宝贵.看来这句话今天可以试试了
画圈的地方是我用空格键一个个按出来的.而不是用TAB按出来的.
小小总结
看来多用空格按钮
三、如何在矩形中对比
圆形我们以半径的长度为x,y的对比.矩形怎么办呢??
我之前已经有个办法了.那么我要去找一下第4章的兄弟帮忙
我调用了24.2第11次做的4.31题的代码
def count_point_judge(r1x, r1y, r2x, r2y, r3x, r3y):
judgeLine1 = ((r1x - r2x) * (r3y - r2y)) - ((r3x - r2x) * (r1y - r2y))
if judgeLine1 < 0:
print("P2 x{} y{} is on the left side of the line from P0 to P1)".format(r3x, r3y))
elif judgeLine1 > 0:
print("P2 x{} y{} is on the right side of the line from P0 to P1)".format(r3x, r3y))
elif judgeLine1 == 0:
print("P2 x{} y{} is on the same line from P0 to P1)".format(r3x, r3y))
我似乎看到了希望.但是我发现它是用已知的2个点组成的线段对比另一个已知的点.
四、兜兜转转的我要拆分矩形的四个点
本来就是一个偷懒的完成矩形就可以了.但是.但是看来玩要好好的拆分了.
如何拆分矩形的四个点呢.
我们应该利用当前的x,y坐标和长宽来计算四个点的坐标.
# 求得最右边的代码
(x_1 - width_r / 2, height_r / 2 + y_1)
好我们建立一个计算的函数吧
五、计算矩形四个x,y点的con_po登场
def con_po(self):
rx1, ry1 = self.__x - self.__width / 2, self.__height / 2 + self.__y
rx2, ry2 = abs(rx1) + self.__width, ry1
rx3, ry3 = rx2, ry2 - self.__height
rx4, ry4 =abs(rx1)-self.__height, ry3
turtle.penup()
turtle.goto(rx1,ry1)
turtle.pendown()
turtle.goto(rx2,ry2)
turtle.goto(rx3,ry3)
turtle.goto(rx4,ry4)
turtle.hideturtle()
turtle.done()
我们来小小的测试一下这个函数
def main():
x1, y1, width1, height1 = eval(input("Enter x1,y1,width1,height1: "))
r1 = Rectangle2D(x1, y1, width1, height1)
r1.con_po()
main()
结果
别慌,我们把点标出来.
# 增加一段打印代码来看看这4对坐标的数值
print(f"x1: {
rx1}, y1: {
ry1}")
print(f"x2: {
rx2}, y2: {
ry2}")
print(f"x3: {
rx3}, y3: {
ry3}")
print(f"x4: {
rx4}, y4: {
ry4}")
以下数据为例.按我的代码计算结果截图
x1, y1, width1, height1 = 9,1.3,10,35.3
出在哪里呢???
我怀疑是x4的计算上.我们合计一下.
# 我是不是不应该进行这样的减法
rx4, ry4 =abs(rx1)-self