exercise 15.1. 定義乙個叫做circle 類,類的屬性是圓心 (center) 和半徑 (radius) , 其中,
圓心 (center) 是乙個 point 類,而半徑 (radius) 是乙個數字。
例項化乙個圓心 (center) 為 (150, 100) ,半徑 (radius) 為 75 的circle 物件。
1、編寫乙個名稱為point_in_circle 的函式,該函式可以接受乙個圓類 (circle) 物件和點類
(point) 物件,然後判斷該點是否在圓內。在圓內則返回true 。
2、編寫乙個名稱為rect_in_circle 的函式,該函式接受乙個圓類 (circle) 物件和矩形
(rectangle) 物件,如果該矩形是否完全在圓內或者在圓上則返回true 。
3、編寫乙個名為rect_circle_overlap 函式,該函式接受乙個圓類物件和乙個矩形類物件,如
果矩形有任意乙個角落在圓內則返回true 。或者寫乙個更具有挑戰性的版本,如果該矩
形有任何部分落在圓內返回true 。
#######15.9 p175
import math
class circle: #
this is a circle class,
incude center and radius
class point:
this is a point
class rectangle():
this is a 矩形
radius=circle()
radius.x=75.0
center=circle()
center.box=point()
center.box.x=150.0
center.box.y=100.0
##矩形
box=rectangle()
box.wei=100.0
box.hei=100.0
box.point=point()
#計算點到圓心的距離
def point_in_len(x,y):
b=math.sqrt((x-center.box.x)**2+(y-center.box.y)**2)
return b
#計算點是否在圓內
def point_in_circle(x,y):
b=point_in_len(x,y)
if b <=radius.x:
print( b)
return true
else:
return false
#計算矩形全部在圓內
def rect_in_circle(x,y):
x1=x+box.wei
y1=y+box.hei
b1=math.sqrt((x-center.box.x)**2+(y-center.box.y)**2)
b2= math.sqrt((x1-center.box.x)**2+(y-center.box.y)**2)
b3= math.sqrt((x-center.box.x)**2+(y1-center.box.y)**2)
b4=math.sqrt(box.wei**2+box.hei**2)
if b4 <=radius.x:
if b1<=radius.x and b2<=radius.x and b3<=radius.x:
return true
else:
return false
else:
return false
def rect_circle_overlap(x,y): ###
#算如果矩形在圓形的一部分就返回ture,
#原理:比對在矩形的範圍內所有的點,是否有到圓心的距離,小於半徑的
###原理:如果有符合的就計數+1
##並計算 計數是否大於1,如果大於1,則認為矩形有點是在圓形中
x2=int(x)
x3=x2+int(x+box.wei)
y2=int(y)
y3=y2+int(y+box.hei)
count=0
for x1 in range(x2,x3):
for y1 in range(y2,y3):
len1=math.sqrt((x1-center.box.x)**2+(y1-center.box.y)**2)
if len1 >radius.x:
count=count+0
else:
count+=1
if count >=1:
return true
point=point()
point.x=90.0
point.y=90.0
print(point_in_circle(point.x,point.y))
###矩形
box.point.x=160.0
box.point.y=100.0
###計算矩形是否全部包含在圓形內
print(rect_in_circle(box.point.x,box.point.y))
##計算矩形是否有部分在圓形內
print(rect_circle_overlap(box.point.x,box.point.y))
標籤:box,return,center,point,python,圓形,circle,矩形
python簡述定義函式的規則 python 函式
一.定義函式 函式是組織好的,可重複使用的,用來實現單一,或相關聯功能的 段 函式能提高應用的模組性,和 的重複利用率 函式式 將某功能 封裝到函式中,日後便無需重複編寫,僅呼叫函式即可 物件導向 對函式進行分類和封裝,讓開發 更快更好更強.函式式程式設計最重要的是增強 的重用性和可讀性 1.定義函...
python如何求圓的面積
首先我們要知道圓的面積計算公式 s r 公式中s為所求圓的面積,為圓周率,r為圓的半徑。示例 定義乙個方法來計算圓的面積 def findarea r pi 3.142 return pi r r 呼叫方法 print 圓的面積為 6f 程式設計客棧 findarea 5 上面例子中我們定義了乙個f...
藍色,感情的流露
就象這藍色的寧靜 心裡波瀾不驚 是什麼讓人如此這般心平氣和 是空調 是電腦 是 還是因為你 常有微微的泡泡從心底冒起 那是因為想起了你 於是溫馨與滿足充盈了整個身心 雖隔著遠遠的距離與思念 當思念的水滴開始漫溢的時候 總有你的問候從簡訊中跳出來 你在網路中充斥的調皮 留住了我臉上不曾褪去的笑意 你總...