Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Da ne otvaram novu temu, par pitanja...
(05-05-2024, 06:36 AM)savan Wrote: Zanimljivo je crtanje u programskom kodu, ja sam one moje round dugmice u onoj prvoj diy lemilici sa touch screen radio sa necim sto retko ko radi, ne libgdx nego libgd, morao sam sve graficke biblioteke od libjpeg, libtiff, libpng, ... da kompilujem da bi mogao da kompilujem libgd i onda sam tako po secanju na php preveo to u C i uspeo na kraju krajeva da crtam, pisem na nivou kako se to radi u php, sve slike sam generisao pre samog main loop i smestio u memoriju, dugme u boji sa oborenim ivicama, dugme pritisnuto druge boje... i onda ocitavao u dispmanx i nije to lose radilo moglo je i bolje, okacio sam jbc.c fajl u nekim od tema  pre neki dan koga interesuje kako sam to radio : )

Moze to da se odradi i nativno bez biblioteke, samo treba poznavanje matematike za geometriju i moze to da se napravi, probacu ja to na onom kruznom displeju kad proradi i kad krenem da pravim gui trebace mi to!

edit: iz tablice : )

Da tako, stim što ti ne trebaju floating-point vrednosti nego celobrojni integer pa to još malo ubrza priču i zauzme manje memorije.

Dakle kolega PHP-ovac, GD i ostale zaludjice po PHP-u, bilo to nekad tako i koriste ljudi ali uglavnom za neke statične grafikone i prikaze i generalno to sve radili na serveru.

Od HTML 5 i CSS3.x su uvedena "canvas" polja za crtanje direktno u HTML stranici kao što vidiš u primeru, ne treba više glomazni JavaScript frejmworkovi da bi se tu nešto crtalo, sada je to "native" i podržano u većini "web-browsers-a", od JavaScript ES6 tačnije (>=2017.) tako da je to sad fin mehanizam bar za WEB okruženje za razna crtanja i eksperimente jer je super jednostavno za korišćenje i radi "kod klienta" na računaru sa njegovim GPU i to radi kao zmaj ...
Reply
da li je neko nosio male elektrolitske kondenzatore kroz aerodromsku kontrolu prtljaga,rentgen,i ako jeste da li je i prošao?
Bože,daj svakome pameti - ni mene ne zaboravi...
Reply
Da i ja razmisljam da probam lvgl, deluje mi prava stvar za moje potrebe : )
Reply
pozdrav,

ne znam koliko je bitno, ali za crtanje krugova moze da se iskoristi Brezenhajm. kao i kod Brezenhajma za linije, moze samo manji ugao od 45 stepeni, tako da se crta u 8 "oktanata":

razlika u odnosu na crtanje linije je sto se "nagib" (odnos izmedju Y i X) u svakom koraku menja.

https://en.wikipedia.org/wiki/Midpoint_circle_algorithm

Inace je isto kao i za liniju "perfektan", nacrtana tacka je najbliza idealnoj i crta se tacno jedan pixel po liniji ciji je uspon manji od 45 stepeni.

Ovde je objasnjeno izvodjenje:
https://www.javatpoint.com/computer-grap...-algorithm

Ko implementira u asembleru, moze da "shiftuje" promenljivu za odlucivanje, tako da se uvek poredi sa 0. I preformulise se izraz, teko da nema IF i THEN grane, vec ostaje samo IF.

Inace GRBL koristi segmente, otprilike kao sto je mikikg pokazao, verovatno je problem sto broj koraka/mm za pojedinacne ose ne mora uvek da bude isti - onda crtanje kruga prelazi u crtanje elipse.

Crtanje elipse takodje moze da se odradi brezenhajmom, samo je proracun nesto malo komplikovaniji.
Reply
(05-03-2024, 05:36 PM)savan Wrote: Imam jedan matematicki problem sa kojim se stalno susrecem prilikom crtanja na racunaru, nacrtao sam dva kvadrata jedan u drugi, na vecem kvadratu je oborena ivica poluprecnika 2.5mm, u manjem kvadratu treba da se taodje obori ivica tako da izmedju prve i druge 1/4 kruga bude isti medjuprostor kao izmedju dva kvadrata, priliko crtanja susrecem se sa tim da kada hocu da oborim cosak ovog manjeg kvadrata tu nije vise isti poluprecnik jer ako stavim pluprecnik 2.5mm na tom manjem kvadratu ne dobijam isti mdjuprostop, pa me zanima ako neko poznaje dobro matematiku koja bi bila formula za izracunavanje ovog manjeg poluprecnika za obaranje na manjem kvadratu? Znam da se to kednostavno postize shestarom i lenjirom ili kako ja to radim u programu dodavanjem ovih ekstra linija sa te roze tacke ali me zanima bas matematicka formula koja bi se nadovezala na ove postojece formule sa slike : )

Ja sam tu docrtao to sto je rozom bojom na vec postojecu sliku koju sam nasao na internetu i docrtao sam taj manji kvadrat crnom bojom:

[Image: attachment.php?aid=42836]

Recimo da je a = 100mm
a manjeg kvadrata = 90mm
obaranje ivice precnika 2.5mm
koliki je poluprecnik na manjem kvadratu? Kako glasi formula? Ovo je korisno recimo ako bi se crtalo kvadratno ili pravougaono dugme, sa oborenim ivicama, na ekranu trebalo bi malo matematike u kodu da se to izvede bez upotrebe neke postojece biblioteke.

r=2,5/100x90
Reply
Milepa ne moze da bude, na drugom primeru 9/100x90=8.1 a treba da bude 4, pogledaj kako je Dragan izracunao to je pravilno i daje tacan rezultat
Reply
Ako je na velikom kvadratu prečnik R=2,5 mm i distanca dva kvadrata d=5mm onda nema rešenja.
Znači za radijus r=0mm na manjem kvadratu, mora biti radijus R=5mm na većem da bi razmak svuda bio d=5 mm. Ako ti treba veći radijus na manjem kvadratu onda je na većem kvadratu radijus R=r+d da bude distanca svuda ista.

Ne znam u kom programu crtaš, ali u autocad je jednostavno. Nacrtaš mali kvadrat kao poliliniju, opališ fillet po ćoškovima i offset na spolja da dobiješ veći kvadrat sa jednakim razmakom. Ili obrnuto, veliki pa mali, sve jedno. Jedini uslov je da radijus na velikom mora biti veći od offset-a.
Reply
Ovo si mislio -> https://forum.yu3ma.net/showthread.php?t...#pid131600 ? Dragan je dao jednostavno resenje ne vredi vise oko ovoga, reseno je u postu 5130!
Reply
Yes vala, na to sam mislio. Ne treba za to neka formula naročita, samo povećaš unutrašnji radijus za  taj offset između dve konture, ili smanjiš spoljašnji isto toliko.
Reply
(05-06-2024, 09:59 AM)NIXIE Wrote: Ako je na velikom kvadratu prečnik R=2,5 mm i distanca dva kvadrata d=5mm onda nema rešenja.
Znači za radijus r=0mm na manjem kvadratu, mora biti radijus R=5mm na većem da bi razmak svuda bio d=5 mm. Ako ti treba veći radijus na manjem kvadratu onda je na većem kvadratu radijus R=r+d da bude distanca svuda ista.

Ne znam u kom programu crtaš, ali u autocad je jednostavno. Nacrtaš mali kvadrat kao poliliniju, opališ fillet po ćoškovima i offset na spolja da dobiješ veći kvadrat sa jednakim razmakom. Ili obrnuto, veliki pa mali, sve jedno. Jedini uslov je da radijus na velikom mora biti veći od offset-a.

ako je veliki radijus manji od rastojanja zidova onda ne dele zajednički centar.
Bože,daj svakome pameti - ni mene ne zaboravi...
Reply
Ako treba da je uvek isto rastojanje dve konture d=5mm onda ne mere nikako biti veliki radijus manji od R=5mm.
Reply
tako je,slažemo se.

"Ako je na velikom kvadratu prečnik R=2,5 mm i distanca dva kvadrata d=5mm onda nema rešenja."


ako je rastojanje između zidova 5mm i veći radijus manji od 5mm tu više nema paralelnosti - jer više nema zajedničkog centra za oba radijusa.
Bože,daj svakome pameti - ni mene ne zaboravi...
Reply
Ja o tome čak i ne razmišljam. Pošto od autokeda živim, to mi je nekako prirodno, komanda offset. Površine, zapremine, dužine ko bi to računao  kad je sve dostupno na par klikova.
Reply
(05-07-2024, 10:06 AM)NIXIE Wrote: Ja o tome čak i ne razmišljam. Pošto od autokeda živim, to mi je nekako prirodno, komanda offset. Površine, zapremine, dužine ko bi to računao  kad je sve dostupno na par klikova.

Hm, ja za ovakva zaobljavanja ivica koristim komandu FILLET. Navika još s kraja 80-ih prošlog veka...

Inače, autor algoritma za crtanje linije (i još ponešto) nije nemačkog porekla pa mu ime nije Brezenhajm. On je Amerikanac po imenu Jack Elton Bresenham i što je najvažnije, čiča je još živ...
Reply
Fillet naravno ide prvo, pa onda offset cele polilinije (konture) na željenu distancu. Autocad je toliko kompleksna stvar, da ne verujem da koristim više od 15% mogućnosti. Možda i manje.  Big Grin
Reply
Tačno, prvo fillet, pa onda offset. A ako izabereš veličinu offseta veću od poluprečnika najmanjeg filleta te konture, onda ti se desi upravo slučaj o kojem se gore debatovalo - ne može da se zaobli ("filetuje") nova "offsetovana" kontura i AutoCAD odbije da uradi zahtevano, jer je matematički nemoguće. Zajednički centar oba luka, i većeg i manjeg, mora da bude sa istih strana obe konture - u našem slučaju sa leve strane. Ako to nije tako, tj centar oba poluprečnika padne u prostor između kontura - onda ništa od posla. U Draganovom primeru konture su bile na 5mm odstojanja (offset je bio 5). Ako hoćemo da obe konture budu zaobljenje, poluprečnik spoljašnje konture mora biti veći od 5 - kod Dragana je 9. Krajnja matematička granica je 5, ali tad je zaobljenje unutrašnjeg kvadrata nulto - kvadrat ostaje isti, nezaobljen. Tek nakon tog broja počinje da se primećuje zaobljenost oba kvadrata. Npr. kad je poluprečnik većeg luka 6, onda je poluprečnik manjeg 1 - mali, ali ipak (jedva) primetan. Da bi to bilo uočljivije, mora se ići sa nešto većim vrednostima imajući na umu da je poluprečnik većeg luka veći od poluprečnika manjeg luka upravo za međusobno odstojanje te 2 konture. Logično, jer je centar oba luka zajednički i radi se o koncentričnim lukovima, tj lukovima koji su delovi koncentričnih kružnica, koje su na međusobnom odstojanju upravo koliko je odstojanje samih kontura na kojim želimo da nacrtamo te lukove.
Žao mi je što sam ovih dana bio odsutan pa nisam video postavljanje problema s kojim sam se davno susreo i tad ga detaljno analizirao...
Reply
Autocad neće da odbije offset polilinije ka unutra kad je radijus manji od offseta, nego će da nacrta kvadrat bez radijusa na zadatoj distanci. Ako nije polilinija nego pojedinačne linije i kružni segmenti onda svakako neće ofsetovati radijus za više od poluprečnika. Suština je da nema jednakog rastojanja konture u temenima ako je radijus manji od offseta.
Reply
U pravu si, NIXIE. Uključio sam AutoCAD nakon toliko vremena i stvarno, sve je bilo kako si rekao. Od lepe više puta zaobljene polilinije, prilikom offsetovanja sam dobio neku delimično ćoškastu konturu - nije na svakom zaobljenju bio prevaziđen poluprečnik istog. A bio sam spreman da se zakunem da je nekad davno - pre 30 godina, kad sam živeo od AutoCADa, da je on odbijao da to uradi. Možda se radilo o nekoj drugoj komandi i nekom drugom matematičkom problemu, nema šanse da se sad setim.
A malo sam i razočaran što je taj problem rešen na takav način, bez upozorenja da neće izvršiti ono što obično radi - ofsetuje korektno. Mislim da je previše da se očekuje od korisnika da znaju za ovakvo neortodoksno rešenje problema. A obično malo upozorenje da su neki manji lukovi zamenjeni ćoškovima prilikom offsetovanja bi moglo da upozori korisnika da nije baš sve urađeno onako kako je on to poželeo. Naravno, kod problema sa samo jednim zaobljenjem, to se odmah primeti, ali neke duže i komplikovanije polilinije, hmm. Ali OK, njihov program, njihova rešenja...
Reply
Ma ne sećam se kako je bilo kad sam počinjao, sećam se dosa, screen menija, crno belog monitora i 386 sa matematičkim koprocesorom za ked. Big Grin 
Tad sam naučio da kucam komande levom rukom, jer je meni bio gubljenje vremena, a meni ne koristim ni danas, samo povremeno. Taj program danas je nešto sasvim drugo. Nekako mi je lepše uvek bilo da idem po gradilištima, a danas zbog godina samo radim projekte, sa povremenim izetima do gradilišta i kafane. Crtanje gledam da uvalim mlađima ako može, dok još oće da rade.  Rolleyes
Reply
Nekoliko meseci vec trazim neku ideju citam po netu ali nista , imam nekoliko IDE DVD romova ispravnih pa ocu da ih upotrebim kao zasebni uredjaji , dal postoji neka vanjska kontrola , neki konvertor iz IDE u HDMi SVIDEO ili tako nesto , na Aliepress-a ima za CD romove plus sa daljinskim , a za DVD nista , opsto nemam nikakvu ideju oko to .
А у руке Мандушића Вука биће свака пушка убојита ...
https://www.youtube.com/user/Marshallov/videos

Reply


Forum Jump:


Users browsing this thread: 55 Guest(s)