Een rechte in het $$(x, y)$$-vlak kan voorgesteld worden door de vergelijking:
$$ ax + by + c = 0 $$
Programmeer in de klasse Rechte
het volgende:
__str__()
levert een string-gedaante van de vorm $$\verb!ax+by+c=0!$$, hierbij worden de
parameters $$a$$, $$b$$ en $$c$$ in hun standaard gedaante weergegeven (gebruik dus %f
). De voorstelling bevat
geen spaties.r(p)
is:
r
een object is van de klasse Rechte
p
een tuple bestaande uit twee reële getallen die een punt met coördinaat $$(x, y)$$ in het vlak voorstellen r + d
waarbij r
een object is van de klasse Rechte
en d
een reëel getal,
resulteert in een nieuw object van de klasse Rechte
met identieke parameters a
en b
als de rechte r
en een waarde voor de parameter c
gelijk aan c + d
r - d
in een nieuwe rechte met gelijke parameters a
en b
en een waarde voor
de parameter c
gelijk aan c - d
*
wordt gebruikt om het snijpunt van twee rechten te vinden. De twee rechten $$R$$ en $$S$$ hebben als vergelijking
$$a_1 x + b_1 y + c_1 = 0$$ en $$a_2 x + b_2 y + c_2 = 0$$. Het resultaat van de oproep R*S
wordt hieronder vastgelegd:
'?'
(type string)a = Rechte(2, 4, 9) print(a) #2.000000x+4.000000y+9.000000=0 b = a + 2 print(b) #2.000000x+4.000000y+11.000000=0 c = a - 2 print(c) #2.000000x+4.000000y+7.000000=0 print(a((1.0, 2.0))) #19.0 print(a((-4.0, -0.25))) #0.0 r = Rechte(6, -3, 1) p = a*r print(p) #(-1.0333333333333334, -1.7333333333333334) print(a(p)) #0.0 print(r(p)) #-8.881784197001252e-16