A lato è riprodotta un'immagine di tre segmenti tracciati su un documento elettronico. Devi costruire un triangolo che li abbia come lati. Trova il modo di farlo. | |
Un modo possibile è il seguente. Leggo, usando il mouse, la lunghezza in pixel dei cateti dei triangoli rettangoli che hanno a, b e c come ipotenuse, e determino, usando il teorema di Pitagora, le lunghezze di a, b e c. |
f <- function(x,y) sqrt(x^2+y^2) c(f(160,66), f(98,56), f(155,45)); 2*c(f(160,66), f(98,56), f(155,45)) # 173.0780 112.8716 161.4001 # 346.1560 225.7432 322.8002
Traccio quindi col mouse (selezionando il comando per tracciare cerchi - in genere devo tenere premuto il mouse per non tracciare generiche ellissi) cerchi di diametri lunghi 323 e 226 pixel, e li dispongo con i centri alla stessa altezza e distanti 173 pixel.
Ecco il triangolo:
Posso tracciare direttamente il triangolo con WolframAlpha: triangle sqrt(155^2+45^2), sqrt(98^2+56^2), sqrt(160^2+66^2) |
Volendo, posso anche tracciare il triangolo con R (o un'altra applicazione simile):
x1 <- 0; x2 <- 200; y1 <- 0; y2 <- 200 plot(c(x1,x2),c(y1,y2),type="n",xlab="", ylab="", asp=1) lines(c(0,f(160,66)),c(0,0)) symbols(0,0, circles=f(98,56), inches=FALSE, add=TRUE) symbols(f(160,66),0, circles=f(155,45), inches=FALSE, add=TRUE) |
Con R posso fare anche tutto pi velocemente, ottenendo anche le ampiezze degli angoli:
source("http://macosa.dima.unige.it/r.R") f = function(x,y) sqrt(x^2+y^2) triSSS(f(160,66), f(155,45), f(98,56)) SIDES; ANGLES; TRIANGLE() # 173.0780 161.4001 112.8716 # 75.96827 64.78331 39.24842 |
Volendo posso incollare l'immagine sulla carta millimetrata
generata con mmpaper(90,90), leggere le lunghezze dei cateti in "mm" e poi procedere come sopra:
a1=41; a2=16.5; b1=39.5; b2=12; c1=25; c2=14
triSSS(f(a1,a2), f(b1,b2), f(c1,c2))
SIDES; ANGLES; TRIANGLE()
# 44.19559 41.28256 28.65310
# 76.00813 65.00892 38.98295 76 65 39