Предикат: Разлика помеѓу преработките

[проверена преработка][непроверена преработка]
Избришана содржина Додадена содржина
Нема опис на уредувањето
Нема опис на уредувањето
Ред 555:
from Podatoci
where Ime='Vlatko'
 
Дефинирање на проблемот
 
Дадена ние една триангулеста површина на која поминува една крива. Бидејќи кривата претставува низа од точки и доколку ја претставиме како низа од точки ќе видиме дека на рабовите од триаголниците онаму каде што поминува кривата нема точки. Нашата задача е да ги најдеме сите точки на рабовите на триаголниците онаму каде што поминува кривата. Поблемов може да се подели значи на два случаи еден од случаите е кога точките од кривата поминуваат ни триаголници кои се раб соседни и другио случај е кога наидуваме на точки се наоѓаат во триаголници кои не се раб соседни т.е. се теме соседни.
Подаотоци на располагање за проблемов беа тоцчките од кривата , теминња од триаголниците и триаголниците.
 
Идејата со која пристапив на проблемот е да ја најдам првата точка во кој триаголник се наоѓа. Бидејќи точките ни се дадени со ред ја земам првата точка и со функцијата барицентрични ја проверувам со секој триаголлник и наоѓам во кој триаголник се наоѓа точката од кога ќе го нарпавам тоа ја запишувам точката во друга матрица и ID на темемто на триаголникот во кој сум ја нашол. Следната точка не ја проверувам со сите триаголнци бидејќи сега имам информација за едне триаголник ја проверувам да не е случајно во истиот триаголник. доколку е тогаш истот така запишија точката и ID на триаголникот односно станува збор за истиот триаголни. Се сега доколку наидам на точка која не се наѓа во истиот триаголник тогаш ги барам соседните триаголници на првиот триаголник, бидејќи знам со сигурност дека е во едне од нив. И ги барам сите теме соседни триаголници, можи да барам и низ раб соседни ама вака ми е сигурно да не правам две пребарувања и ми се вклучени во препарувањето. На овај начин ги запишувам сите точки и кај се наоѓаат.
Запишување на податоците
Tabela 1
 
Но бидејќи може да ми се јави случај каде што ID на темиња на еден ист триаголник може да не се запишат со ист редослед па оваа матрица ја транспонира и од 4 ред до крајот на редот му викам да ги сортира. Бидејќи не можам да направам сорт по колони односно да сортирам ред по ред со однапред зададени колони мора да ја свртам матрица на тој начин сортирам колона по колона и откако ќе ми ги сортира ја враќам матрицата во првичната состојба и на тој начин ги имам сортирано податоците од 4 колона до крајот во секој ред.
Tabela 2
 
Tabela 3
 
Зошто ова е потребно
Идејата за да најдам точка на раб е следнава:
тоа ќе го направам со пресек на две прави за пресек на две прави потребни ми се четири точки. Е сега потребно ми е да ги најдам ови четири точки то ќе го нарпавам на следниов начин. Ги земам точките од матрица сортирани. Ја земам првата точка и и нејзините Id и Id ги споредувам со Id од следната точка. Доколку не ми беа сортирани Id колоните ќе требаше да ги споредувам секоја вредност од редицата од секоја колона со вредност од секоја колона од следниот ред. Со сортирањето сега бидејќи ми се сортирани ги земам во редот од 4 колона до крајот на редот вредностите и ги споредува со следните вредности во нареднио ред. Доколку се исти овие вредности тогаш спореди ги следните две редици и.т.н. кога ќе наидам на разлечни вредности од 4 колона до крајот на редот тогаш тие две вредности запиши ги (обележани со плаво) истото го правам понатаму.
Tabela 5
Откако ќе ги добијам вредностите како што се насликава прикажани тогаш помеѓу првите барам дали се раб соседни или теме соседни.раб соседни се доколку две од темината на триаголниците му се исти, а теме соседни се доколку еден од темината на триаголниците му се исти. Така во табелата погоре помеѓу првите два ќе најдиме две заеднички темина 3 и 2, во третат и четвртат колона ќе најдиме пак две темина исти 3 и 4, и во последните редови ќе најдиме едно теме исто 3 и тие триаголници се теме соседни.
Slika 4 tocki
 
Раб соседни
Tabela 6
 
Сега откако ги имам раб соседните точки со формулите за пресек помеѓу две прави ги наоѓам точките на рабовите.
 
 
 
Slika Rb tocki
 
 
Теме соседни
Tabela 7
 
Ги барам сите триаголници со теме 3 или А и потоа ги запишувам нивните координати. Во овај случај би се добиле триаголници на кој координатите на некој од темињата би му биле исти.
Slika Teme sosedni koordinati Slika Teme sosedni
 
Tabela 7
За да не се повторува координатите бидејќи едната координата ни е позната тоа е 1 или А правиме унија со што ќе ни ги избриши сите дупликати и ќе добијаме нешто како на сликава
Tabela 8
 
Tabela 9
Teme tocki