De $$(x,y)$$ coördinaten van een reeks punten in het vlak worden opgeslagen in 2 NumPy-rijen, namelijk een rij x
voor de $$x$$-coördinaat en een rij y
voor de $$y$$-coördinaat. We zoeken het aantal punten dat in de open ring met binnenstraal $$r_1$$ en buitenstraal $$r_2$$ ligt. Een punt met coördinaat $$(x,y)$$ ligt in deze open ring, indien geldt:
$$ r_1 \lt \sqrt{x^2+y^2} \lt r_2 $$
We wensen een functie te schrijven die dit aantal berekent, en waarbij de functie gevectoriseerd is. Ze moet dus ook werken in het geval de argumenten x
en y
beiden reële getallen voorstellen (en waarbij het resultaat dan uiteraard $$0$$ of $$1$$ is).
Schrijf een functie openRing()
met volgende vier argumenten:
Het resultaat is een positief geheel getal dat aangeeft hoeveel van de opgegeven punten in de open ring liggen.
openRing(np.array([0.0, 1.0, 2.0, 3.0]), np.array([0.0, -1.0, 2.0, -3.0]), 1.0, 3.0) = 2 openRing(2.0, 2.0, 1.0, 3.0) = 1