Raspberry Pi - GPIOs, grafiskt gränssnitt, pyhton, matematik och elektronik. (10 / 13 steg)
Steg 10: Pythagoras sats
Vad Pythagoras har att göra med python och hallon?
Enkel, Antag att vi vill verifiera om insidan av cirkla klickade, hur gå vidare?
Jo, först måste vi klicka ståndpunkt. Vi vet redan hur man får detta från det sista steget.
Också, i mitten av cirkeln vi redan har, som vi definierade det när du ritar.
Då behöver vi bara veta om formuläret avstånd poängen klickade till mitten av cirkeln är mindre eller lika med radien av cirkeln.
Vänligen se bilden ovan. Den gröna punkten representerar genom att klicka utanför cirkeln. Vi kan se att avståndet från centrum av cirkeln och det klickade är större än radien av cirkeln. Den blå punkten, dock är inuti cirkeln och vi kan se att dess avstånd från mitten av cirkeln är mindre än radien.
Från den Pythagoras sats, är det känt att kvadraten på den största sidan av en rätvinklig triangel är lika med summan av kvadraterna för de två mindre sidorna. Så, för att beräkna största sida, vi gör en enkel operation, med ger oss den största sida rätvinklig triangel är kvadratroten ur summan av kvadraterna för de två mindre sidorna (förvirrande? Se bilden ovan).
Vi får då, att avståndet från cirkelns mittpunkt är:
avståndet = fyrkantig root((x-xcenter)^2+(y-ycenter)^2)
Där x och y är koordinaterna för poäng klickade och xcenter en ycenter är koordinaterna för mitten av cirkeln. Detta avstånd måste vara mindre än radien av cirkeln om insidan av cirkla klickade.
Block av kod i Python:
om math.sqrt(math.pow(mpos[0]-240,2)+math.pow(mpos[1]-80,2)) < 60:
Den math.sqrt metoden gör kvadratroten av det argumentet, vilket är summan av kvadraterna.
-MPO [0] och MPO [1] är musen klicka på koordinaterna.
-240 och 80 är koordinaterna för mitten av cirkeln.
Math.pow(x,n) gör x ^ n, torget i detta fall.