Уравнение для тестирования, если точка в кругу

Основная проблема в вашем коде состоит в том, что вы не используете enctype="multipart/form-data" в своей форме, поэтому, когда запрос отправляется на сервер, он не имеет файла в коллекции request.FILES.

Вы должны написать HTML-код для своей формы, например, так:

{% block content %}
  
{% csrf_token %} {{ form.as_table }}
{% endblock %}

и убедиться, что действие указывает на правильный URL-адрес.

наконец, это документация для загрузки файлов: https://docs.djangoproject.com/en/2.1/topics/http/file-uploads/

289
задан jason 23 June 2013 в 04:30
поделиться

5 ответов

В целом, x и y должен удовлетворить (x - center_x)^2 + (y - center_y)^2 < radius^2.

Обратите внимание на то, что точки, которые удовлетворяют вышеупомянутому уравнению с < замененный ==, рассматриваются вопросы на круг, и вопросы, которые удовлетворяют вышеупомянутому уравнению с < замененный >, рассматриваются внешний круг.

461
ответ дан jason 23 November 2019 в 01:45
поделиться

Как сказано выше - используют Евклидово расстояние.

from math import hypot

def in_radius(c_x, c_y, r, x, y):
    return math.hypot(c_x-x, c_y-y) <= r
5
ответ дан 23 November 2019 в 01:45
поделиться

Необходимо проверить, меньше ли расстояние от центра круга к точке, чем радиус, т.е.

if (x-center_x)**2 + (y-center_y)**2 <= radius**2:
    # inside circle
10
ответ дан dF. 23 November 2019 в 01:45
поделиться

Вычислите Расстояние

D = Math.Sqrt(Math.Pow(center_x - x, 2) + Math.Pow(center_y - y, 2))
return D <= radius

, это находится в C#... преобразовывают для использования в Python...

11
ответ дан Jason Punyon 23 November 2019 в 01:45
поделиться

Можно использовать 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 отметил, что <= должен быть заменен <, и в зависимости от использования это может на самом деле иметь смысл даже при том, что я полагаю, что это не верно в строгом математическом смысле . я признаю ошибку.

72
ответ дан Konrad Rudolph 23 November 2019 в 01:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: