Основная проблема в вашем коде состоит в том, что вы не используете enctype="multipart/form-data"
в своей форме, поэтому, когда запрос отправляется на сервер, он не имеет файла в коллекции request.FILES
.
Вы должны написать HTML-код для своей формы, например, так:
{% block content %}
{% endblock %}
и убедиться, что действие указывает на правильный URL-адрес.
наконец, это документация для загрузки файлов: https://docs.djangoproject.com/en/2.1/topics/http/file-uploads/
В целом, x
и y
должен удовлетворить (x - center_x)^2 + (y - center_y)^2 < radius^2
.
Обратите внимание на то, что точки, которые удовлетворяют вышеупомянутому уравнению с <
замененный ==
, рассматриваются вопросы на круг, и вопросы, которые удовлетворяют вышеупомянутому уравнению с <
замененный >
, рассматриваются внешний круг.
Как сказано выше - используют Евклидово расстояние.
from math import hypot
def in_radius(c_x, c_y, r, x, y):
return math.hypot(c_x-x, c_y-y) <= r
Необходимо проверить, меньше ли расстояние от центра круга к точке, чем радиус, т.е.
if (x-center_x)**2 + (y-center_y)**2 <= radius**2:
# inside circle
Вычислите Расстояние
D = Math.Sqrt(Math.Pow(center_x - x, 2) + Math.Pow(center_y - y, 2))
return D <= radius
, это находится в C#... преобразовывают для использования в Python...
Можно использовать Pythagoras, чтобы измерить расстояние между точкой и центром и видеть, ниже ли это, чем радиус:
def in_circle(center_x, center_y, radius, x, y):
dist = math.sqrt((center_x - x) ** 2 + (center_y - y) ** 2)
return dist <= radius
РЕДАКТИРОВАНИЕ (благодарность за информацию Paul)
На практике, обработка на квадрат является часто намного более дешевой, чем пущение квадратного корня и так как мы только интересуемся упорядочиванием, мы можем, конечно, предшествовать пущению квадратного корня:
def in_circle(center_x, center_y, radius, x, y):
square_dist = (center_x - x) ** 2 + (center_y - y) ** 2
return square_dist <= radius ** 2
кроме того, Jason отметил, что <=
должен быть заменен <
, и в зависимости от использования это может на самом деле иметь смысл даже при том, что я полагаю, что это не верно в строгом математическом смысле . я признаю ошибку.