Last active
August 14, 2018 16:30
-
-
Save mesosbrodleto/6fba0fa5488d6677ec4773c0b3b60b42 to your computer and use it in GitHub Desktop.
qualificazione - esempio
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## esempio di calcolo: dato un punto sul campo, calcolarne la distanza euclidea dalla porta\n", | |
"\n", | |
"Soluzione: \n", | |
"\n", | |
"La distanza euclidea tra due punti è definita come:\n", | |
"\n", | |
"$$distance = \\sqrt{\\Delta y^2 + \\Delta x^2}$$\n", | |
"\n", | |
"Dove $ \\Delta y $ è la differenza tra le ordinate dei due punti, mentre $ \\Delta x $ è la differenza tra le ascisse.\n", | |
"\n", | |
"Il punto in input viene inserito usando la funzione \n", | |
"```python\n", | |
"input()\n", | |
"```\n", | |
"\n", | |
"Il calcolo della distanza euclidea avviene tramite la funzione \n", | |
"```python\n", | |
"def euclidean(p1, p2) : \n", | |
"```\n", | |
"\n", | |
"Tale funzione prende in input due punti e ne restituisce la distanza euclidea. Al suo interno, utilizza ```math.pow()``` e ```math.sqrt()``` per calcolare potenza di 2 e la radice quadrata.\n", | |
"\n", | |
"\n", | |
"Ora, immaginiamo di avere il campo di calcio definito in coordinate $x \\in [0, ..., 100]$ e $y \\in [0, ... ,100]$.\n", | |
"\n", | |
"Dato un punto sul campo, vogliamo sapere la distanza dalla porta avversaria. Per convenzione, la porta avversaria è localizzata con le coordinate $p = (100,50) $, mentre la propria porta è localizzata al punto $p = (0,50)$\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"inserire un punto sul piano (formato: x,y)\n", | |
"90,30\n", | |
"distanza dalla porta avversaria del punto (90, 30) : 22.360679775\n" | |
] | |
} | |
], | |
"source": [ | |
"import math\n", | |
"def euclidean(p1,p2):\n", | |
" \n", | |
" deltay = p1[1] - p2[1]\n", | |
" deltax = p1[0] - p2[0]\n", | |
" \n", | |
" square_sum= math.pow(deltax,2) + math.pow(deltay , 2)\n", | |
" \n", | |
" return math.sqrt(square_sum)\n", | |
"\n", | |
"print \"inserire un punto sul piano (formato: x,y)\"\n", | |
"point = input()\n", | |
"\n", | |
"if 0 <= point[0] <= 100 and 0 <= point[1] <= 100:\n", | |
" distance = euclidean(point, (100,50))\n", | |
"\n", | |
"\n", | |
" print \"distanza dall'origine degli assi del punto %s : %s\"%(point,distance)\n", | |
"else:\n", | |
" print \"punto non valido\"" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 2", | |
"language": "python", | |
"name": "python2" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 2 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython2", | |
"version": "2.7.12" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 1 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment