21 Востаннє редагувалося P.Y. (05.10.2021 20:58:00)

Re: Трикутник і точка

mamkin haker написав:

чому я ніразу на форумі небачив студентів які просили б зробити лабалаторку повязану з SQl або ML?
проблема в університетах чи люди які те вчать дуже розумні?

Якщо загальні задачки з програмування — це перший курс, а бази даних — третій, то, ймовірно, ті, за кого треба все робити, до третього курсу вилітають. Логічно?

(Бо інакше б тут було не лише «поможіть зробити лабу», а й «поможіть почати й кінчити диплом завтра захист»).

Подякували: koala1

22

Re: Трикутник і точка

P.Y. написав:

Якщо загальні задачки з програмування — це перший курс, а бази даних — третій, то, ймовірно, ті, за кого треба все робити, до третього курсу вилітають. Логічно?

Ні. До третього курсу ті за кого треба все робити, вже знають що на цьому форумі питати нема сенсу. :D

Подякували: ch0r_t, dot, 0xDADA11C73

23

Re: Трикутник і точка

bunyk написав:
P.Y. написав:

Якщо загальні задачки з програмування — це перший курс, а бази даних — третій, то, ймовірно, ті, за кого треба все робити, до третього курсу вилітають. Логічно?

Ні. До третього курсу ті за кого треба все робити, вже знають що на цьому форумі питати нема сенсу. :D

Але хтось міг тільки на третьому курсі про нього і дізнатись.
Крім того, версія про відрахованих студентів звучить краще з моралізаторської точки зору.

24

Re: Трикутник і точка

koala написав:

Ніхто не забороняє студентам відповідати одне одному. Але щоб відповідати, треба щось знати, а сюди переважно приходять повні нулі.

Так студенту-відміннику тут поки що нема чого робити: відповіді на свої питання він і сам знайде без нашої допомоги, похвалитися своєю програмістською майстерністю теж не зможе, бо тут професіонал на професіоналі сидить і професіоналом поганяє. От якби тут були тільки студенти, то він би міг заробити репутацію крутого чувака, в якого можна попросити допомоги — а так місце вже зайнято, а місцеві профі ще й ганяють тих, хто міг би регулярно звертатися до нього з проханнями.

25

Re: Трикутник і точка

alonarolduhina написав:

Трикутник ABC задано координатами своїх вершин на площині.Визначити де лежить точка M (x0,y0)- ззовні трикутника всередині нього або на стороні трикутника

Трикутник обмежений прямими

def point_to_line(p, l):
    a, b = l[0], l[1]
    return (p[0] - a[0]) * (b[1] - a[1]) - (p[1] - a[1]) * (b[0] - a[0])

def point_to_triangle(p, t):
    f = lambda l: point_to_line(p, l)
    return [f(t[0:2]), f(t[1:3]), f([t[2], t[0]])];

t = [(2, 1), (6, 3), (1, 4)]
p = (2, 2)
r = point_to_triangle(p, t)
w = 'where ?'

if any(v > 0 for v in r):
    w = 'outside'
elif any(v == 0 for v in r):
    w = 'on the edge'
else:
    w = 'inside'

print(f'Point {p} is {w} of the triangle {t}')
Подякували: ch0r_t1

26

Re: Трикутник і точка

t = [(0, 0), (0, 2), (2, 0)]
p = (1, 0.5)
outside
але
t = [(0, 0), (2, 0), (0, 2)]
p = (1, 0.5)
inside

Подякували: leofun011

27 Востаннє редагувалося leofun01 (10.10.2021 10:19:41)

Re: Трикутник і точка

Вже не актуально

Вершини трикутника треба подавати проти годинникової стрілки.

https://i.ibb.co/qBrHwmZ/t-in-t13493.png


Якщо подавати за годинниковою стрілкою, то отримаєте від'ємний інвертований трикутник.

https://i.ibb.co/bQSyGFV/t-out-t13493.png

І так, це такий же повноцінний трикутник як попередній.

І на від'ємному інвертованому програма може фейлитись, бо при написанні я його не враховував.

Подякували: 0xDADA11C71

28

Re: Трикутник і точка

Переробив, тепер кожна послідовність 3-х вершин розглядається як звичайний трикутник.

def point_to_line(p, l):
    a, b = l[0], l[1]
    return (p[0] - a[0]) * (b[1] - a[1]) - (p[1] - a[1]) * (b[0] - a[0])

def point_to_triangle(p, t):
    f = lambda l: point_to_line(p, l)
    return [f(t[0:2]), f(t[1:3]), f([t[2], t[0]])];

t = [(2, 1), (6, 3), (1, 4)]
p = (2, 2)
r = point_to_triangle(p, t)
w = 'where ?'
is_out = lambda v: v < 0
if point_to_line(t[0], t[1:3]) < 0:
    is_out = lambda v: 0 < v

if any(is_out(v) for v in r):
    w = 'outside'
elif any(v == 0 for v in r):
    w = 'on the edge'
else:
    w = 'inside'

print(f'Point {p} is {w} of the triangle {t}')
Подякували: ch0r_t1

29

Re: Трикутник і точка

Якщо комусь цікаво, то рішення пана leofun01 використовує той не зовсім тривіальний факт, що якщо рівняння прямої представити як функцію f(x)=0 і підставити у цю функцію координати різних точок площини, то для точок прямої буде 0 (очевидно), а для точок кожної з напівплощин знак буде однаковий - для однієї буде +, для іншої -.

Подякували: leofun011