V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Berkeley Humanoid Lite (Onshape, GitHub) je open source humanoidní robot. V amerických cenách jej lze sestavit do 5000 dolarů.
Jakub Jelínek oznámil vydání verze 15.1 (15.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 15. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.
Byly vyhlášeny výsledky letošní volby vedoucího projektu Debian (DPL, Wikipedie). Staronovým vedoucím zůstává Andreas Tille.
Jason Citron končí jako CEO Discordu. Od pondělí 28. dubna nastupuje nový CEO Humam Sakhnini, bývalý CSO Activision Blizzard.
Článek na Libre Arts představuje baskytarový multiefekt Anagram od společnosti Darkglass Electronics. S Linuxem uvnitř (licence, GitHub).
Městský soud v Praze vyhlásil rozsudek, který vyhověl žalobě novináře Jana Cibulky, který s podporou spolku IuRe (Iuridicum Remedium) požadoval omluvu od státu za to, že česká legislativa nařizuje operátorům uchovávat metadata o elektronické komunikaci. To je přitom v rozporu s právem. Stát se musí novináři omluvit a zaplatit náklady řízení. Především je ale součástí přelomové rozhodnutí o nelegálnosti shromažďování dat a o
… více »Americké technologické firmy Apple a Meta Platforms porušily pravidla na ochranu unijního trhu, uvedla včera Evropská komise (EK). Firmám proto vyměřila pokutu – Applu 500 milionů eur (12,5 miliardy Kč) a Metě 200 milionů eur (pět miliard Kč). Komise to oznámila v tiskové zprávě. Jde o první pokuty, které souvisejí s unijním nařízením o digitálních trzích (DMA). „Evropská komise zjistila, že Apple porušil povinnost vyplývající z nařízení
… více »Americká společnost OpenAI, která stojí za chatovacím robotem ChatGPT, by měla zájem o webový prohlížeč Chrome, pokud by jeho současný majitel, společnost Google, byl donucen ho prodat. Při slyšení u antimonopolního soudu ve Washingtonu to řekl šéf produktové divize ChatGPT Nick Turley.
Mám laserový vychylovací systém podobný tomuto. Zrcátka jsou navzájem kolmá, takže umožňují vychýlení paprsku v navzájem kolmých osách. Motory jsou skrze zpětnou vazbu řízené napětím, kdy napětí přesně odpovídá úhlu natočení zrcátka.
Problém je v tom, že promítám na rovinu a ne na kulovou plochu, navíc pod úhlem. Potřeboval bych tedy určit transformaci souřadnic na promítané ploše na ovládací napětí - tzn. zjistit potřebný úhel natočení obou zrcátek pro zaměření souřadnic na ploše promítání. Při nulové výchylce zrcátek paprsek míří do středu promítané plochy.
Jde o to, že pohyb v ose X ovlivňuje osa Y a naopak - pokud promítám bez korekce, souřadnice jsou nelineárně zkreslené - přímky jsou křivé, vzdálenosti nesedí atd. Bohužel zaboha nemužu přijít na to, jak tohle spočítat. Pro speciální případ - body na ose X a Y je transformace jednoduchá a funguje: uhel = atan2(rozmer, vzdalenost projektoru).
To ale nestačí, potřebuju mít přesně všechny body. Znám vzdálenost projektoru od plochy a souřadnice bodu na ploše, vzdálenost zrcátek uvnitř hlavy zatím zanedbám.
Zkoušel jsem už hromadu ruzných řešení ruzně najitých po netu a nic z toho mi nefungovalo, jediné co vypadá slibně je tohle ale tomu vubec nerozumím.
V podstatě mám souřadnicemi dané 2 úhly - jeden který svírá paprsek proti středové ose promítání a pak úhel, který svírá spojnice středu plochy proti bodu daném souřadnicemi. Potřebuju nějakou funkci, která úhel paprsku rozloží úhlem souřadnic na úhly natočení zrcátek. To mi nikdo zatím nezodpověděl - jakým způsobem se skládají a rozkládají úhly do jiných rovin. Vím, že vektor jde rozložit podle úhlu do navzájem kolmých složek, ale jak totéž udělat s úhlem rozkládaným jiným úhlem mi uniká.
Toto není školní úloha, o to víc je to pro mě dúležité. Děkuju komukoliv, kdo se mi pokusí pomoci
Tiskni
Sdílej:
Problém je v tom, že promítám na rovinu a ne na kulovou plochu, navíc pod úhlem.Takze "X Galvo" nemiri kolmo na promitaci plochu?
V podstatě mám souřadnicemi dané 2 úhly - jeden který svírá paprsek proti středové ose promítání a pak úhel, který svírá spojnice středu plochy proti bodu daném souřadnicemi. Potřebuju nějakou funkci, která úhel paprsku rozloží úhlem souřadnic na úhly natočení zrcátek. To mi nikdo zatím nezodpověděl - jakým způsobem se skládají a rozkládají úhly do jiných rovin. Vím, že vektor jde rozložit podle úhlu do navzájem kolmých složek, ale jak totéž udělat s úhlem rozkládaným jiným úhlem mi uniká.Priznam se, ze tenhle odstavec vubec nechapu. Takhle zatim rozumim tomu zadani: mas nejaky bod (x, y) na promitaci plose a chces najit natoceni "X Galvo" a "Y Galvo", aby paprsek dopadl na ten bod.
Takze "X Galvo" nemiri kolmo na promitaci plochu?Nejspíš má nějaké problémy s geometrií. Proto bych si promítl mřížku, zaměřil skutečné souřadnice a aproximoval sítí.
Takhle zatim rozumim tomu zadani: mas nejaky bod (x, y) na promitaci plose a chces najit natoceni "X Galvo" a "Y Galvo", aby paprsek dopadl na ten bod.Řekl bych, že jo.
Počkat, on to ten pincushion přeci jen bude.Pokud si to dobře pamatuju, tohle se v některých projektorech řeší asférickou čočkou, která je podobná běžné spojce, ale je uprostřed mnohem plošší než na okrajích, tudíž čím je paprsek dále od osy, tím více dovnitř se láme ve srovnání s normální sférickou čočkou (viz obrázek na této stránce o asférických čočkách, tedy až na to, že tam je asférická naopak a potlačuje soudkovitost).
a
a b
. Pokud a = pi/4
a b = pi/4
, tak by paprsek mel smerovat do stredu (tzn. podobne jako na tom obrazku). Je samozrejme mozny, ze tam je nekde chyba, pravdepodobnost chyby odhaduju na 50% :) Ale postup by mel byt ok.
Pouzivam stejny system souradnic jako na tomhle obrazku.
Myslenka je jednoducha, pokud vim normalovy vektor roviny a smer dopadu paprsku, muzu spocitat vektor odrazu.
Vektor l1
(light 1) je vektor, ktery smeruje z mista dopadu na prvni zrcadlo ke zdroji.
l1 = [0, 1, 0]
n1
je normalovy vektor roviny prvniho zrcadla, normalizovany na delku 1.
n1 = [0, cos(a), sin(a)]
r1
je vektor odrazu paprsku od prvniho zrcadla, smeruje pryc od mista dopadu. Jak spocitat vektor odrazu je vysvetleno zde.
r1 = 2*(n1*l1)*n1 - l1 = [0, 2*cos(a)*cos(a) - 1, 2*sin(a)*cos(a)]
Normalovy vektor roviny druheho zrcadla:
n2 = [cos(b), 0, -sin(b)]
A l2
je totez co r2
, jenom ma opacny smer:
l2 = -r1 = [0, 1 - 2*cos(a)*cos(a), -2*sin(a)*cos(a)]
Vektor odrazu od druheho zrcadla spocitam stejne jako pro prvniho zrcadla:
r2 = [4*sin(a)*cos(a)*sin(b)*cos(b), 2*cos(a)*cos(a) - 1, 2*sin(a)*cos(a) * (1-2*sin(b)*sin(b))]
Z vektoru r2
, ktery smeruje na promitaci plochu, je ted potreba spocitat misto dopadu (projx
a projy
). Pokud mam vektor [x, y, z]
, tak projx = y/x
a projy = z/x
. Obe souradnice je jeste potreba vynasobit konstantou s
podle vzdalenosti platna.
Takze:
projx = s * (2*cos(a)*cos(a)-1) / (4*sin(a)*cos(a)*sin(b)*cos(b))
projy = s * (2*sin(a)*cos(a)*(1-2*sin(b)*sin(b))) / (4*sin(a)*cos(a)*sin(b)*cos(b))
Pokud chces umet prevest projx
a projy
na a
a b
, tak je potreba resit soustavu dvou rovnic, coz jsem nezkousel, ale vypada to slozite.
a
a b
jsou natoceni X Galvo a Y Galvo, na obrazku jsou natoceny priblizne na 45 stupnu (pi/4 v radianech).
a
zafixuje na 45 stupnu, tak
y = (2*sin(a)*cos(a)*(1-2*sin(b)*sin(b))) / (4*sin(a)*cos(a)*sin(b)*cos(b))
jde podle wolfram alpha upravit na y = cotan(2*b)
.
y
nám vyšlo stejně (akorát já uvažuju jinej úhel, proto tg místo cotg). Jestli vyšlo stejně i x
už opravdu počítat nebudu. Dobrou noc r2
(vektor paprsku smerujiciho na platno) wolfram alpha zjednodusil na [sin(2a) * sin(2b), cos(2a), sin(2a) * cos(2b)]
Dobrou alpha = 0.5 * acos(x / sqrt(x^2 + y^2 + 1))
beta = 0.5 * acot(y)
Pokud zafixuju x nebo y na 0, tak to dava stejny vysledky jako atan(uhel)/2. Alpha i beta jsou uhly 0 az 90, kdyz jsou oba 45, tak paprsek smeruje doprostred.
Kdyz budu mit zrcatko jedne osy pevne a druhym budu otacet, delka pruvodice bude v kazdem bode jina a tim padem to nenakresli primku.To, že délka průvodiče je jiná, ještě neznamená, že to nevykreslí přímku. Když si vemeš do ruky laser, budeš jím svítit na zeď a budeš jim vodorovně otáčet, tak taky promítneš přímku, přestože dráha je v každým bodě jinak dlouhá. Jestliže se ti to opravdu chová tak, jak popisuješ, tak to znamená, že to tvoje zařízení neodpovídá tomu modelu na obrázku.
Zadani je jasne - vypocitat uhly zrcatek tak, aby paprsek miril na bod zadany souradnicemi na rovine. Ted vubec neuvazuju vlastni zkresleni projektoru, protoze v realu se rozdilna vzdalenost zrcatek projevi mensi chybou, nez je velikost tecky laseru. Uvazuju idealni projektor, ktery promita idealne na kulovou plochu (krivkovy integral po kulove plose je linearni vuci uhlu).
Vzhledem k tomu, kolik lidi si na tom uz vylamalo zuby a vlastne mi nikdo zatim presne nerekl, jak to spravne je, nepovazuju tuhle ulohu za trivialni .
a vlastne mi nikdo zatim presne nerekl, jak to spravne je, nepovazuju tuhle ulohu za trivialniNo, kdyz ja dve hodiny neco (zdarma) pocitam a ty to odbydes ala "takhle to vyjit nemuze, nejak se mi to nezda", ani se neobtezujes to vyzkouset (natoz se zmyslet nad postupem reseni), tak clovek uplne ztrati chut se tim vubec zabyvat. Spocitej si to sam, kdyz ses tak chytrej, lituju toho ztracenyho casu
Sry, tak jsem to vubec nemyslel.Jasne, neni problem, pocit ukrivdenosti uz vyprchal