Byla vydána nová verze 3.38 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.10 souvisejícího programovacího jazyka Dart (Wikipedie).
Organizace Apache Software Foundation (ASF) vydala verzi 28 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Byl vydán Debian 13.2, tj. druhá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Google představil platformu Code Wiki pro rychlejší porozumění existujícímu kódu. Code Wiki pomocí AI Gemini udržuje průběžně aktualizovanou strukturovanou wiki pro softwarové repozitáře. Zatím jenom pro veřejné. V plánu je rozšíření Gemini CLI také pro soukromé a interní repozitáře.
V přihlašovací obrazovce LightDM KDE (lightdm-kde-greeter) byla nalezena a již opravena eskalace práv (CVE-2025-62876). Detaily v příspěvku na blogu SUSE Security.
Byla vydána nová verze 7.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Tor Browser byl povýšen na verzi 15.0.1. Další novinky v příslušném seznamu.
Česká národní banka (ČNB) nakoupila digitální aktiva založená na blockchainu za milion dolarů (20,9 milionu korun). Na vytvořeném testovacím portfoliu, jehož součástí jsou bitcoin, stablecoiny navázané na dolar a tokenizované depozitum, chce získat praktickou zkušenost s držením digitálních aktiv. Portfolio nebude součástí devizových rezerv, uvedla dnes ČNB v tiskové zprávě.
Apple představil iPhone Pocket pro stylové přenášení iPhonu. iPhone Pocket vzešel ze spolupráce značky ISSEY MIYAKE a Applu a jeho tělo tvoří jednolitý 3D úplet, který uschová všechny modely iPhonu. iPhone Pocket s krátkým popruhem se prodává za 149,95 dolarů (USA) a s dlouhým popruhem za 229,95 dolarů (USA).
Byla vydána nová stabilní verze 7.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 142. Přehled novinek i s náhledy v příspěvku na blogu.
Společnost Epic Games vydala verzi 5.7 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.
Dělal jsem úkol z programování, ale nějak špatně to funguje.
Mám 2 úsečky, každá je zadaná dvěma body. Mám zjistit jestli jsou rovnoběžné, různoběžné, kolmé, jestli leží na jedné přímce a v tomto případě jestli se nepřekrývají. Pokud mají průsečík, vypsat ho.
Vyřešil jsem to nějak takto:
y = kx + qk1 * k2 + 1 == 0. Pak najdu průsečík přímek (k1*x + q1 = k2*x + q2, potom dopočtu y) a zjistím, jestli bod leží na obouch úsečkách.A právě ve zjišťování, zda je bod na úsečce je zakopaný pes. Zjišťuji to takto:
sqrt((A.x - B.x)^2 + (A.y - B.y)^2)sqrt((A.x - bod.x)^2 + (A.y - bod.y)^2) + sqrt((B.x - bod.x)^2 + (B.y - bod.y)^2)
Tak co teď s tím? Jak jinak zjistit, jestli tam ten bod leží nebo ne?
Tiskni
Sdílej:
Neporadí někdo, jak to všechno udělat bez toho nepřesného dělení? Nebo nějakou rychlou třídu "zlomek"
Tak neděl, ale násob - test rovnosti ("rovnici") k_AB == k_CD můžeš vyjádřit jako (y_B - y_A)/(x_B - x_A) == (y_D - y_C)/(x_D - x_C), což je ekvivalentní (y_B - y_A)*(x_D - x_C) == (y_D - y_C)*(x_B - x_A) (což je ekvivalentní nulovému skalárnímu součinu normály prvního vektoru a druhého vektoru, jak jsem poznamenal v odpovědi Platonixovi)
Ovšem, také záleží, co máš na vstupu.
Neni to sice idealni reseni, ale rozhodne nejjednodussi a v realnych aplikacich je to asi uplne jedno.
Jen je potreba zvolit vhodny odstup delty a presnosti reprezentace realneho cisla v zavislosti na poctu operaci, aby chyba nikdy nepresahla velikost delty.
Toto je standardne riesenie ktore sa uci aj na numerickej matematike, proste sa treba zmierit s konecnou presnoustou cisel s poh. rad. ciarkou. Ked to chces presne tak to rataj symbolicky cez zlomky..
Nebylo by jednodušší napočítat směrové vektory obou úseček (to pomocí rozdílu souřadnicí jejich bodů). Potom stačí provést skalární součin těchto vektorů. Je-li roven nule, jsou kolmé, je-li roven 1 jsou rovnoběžné. Je-li něco mezi, tak jsou obecně různoběžné.
je-li roven 1 jsou rovnoběžné.
Co třeba (1,1) a (-1,-1)? Ne, tohle by se testovalo přes normálový vektor - pokud je normálový vektor prvního vektoru kolmý na druhý vektor (tedy skalární součin druhého vektoru a normály prvního je roven nule). Normálový vektor (a,b) = (-b,a)
Ale jinak dobrý - už jsem chtěl v předešlém vlákně odpovědět, jak řešit situaci se zlomky - tohle je o poznání elegantnější.
I když - je to vlastně to samý, co jsem chtěl navrhnout, jenom jinak vyjádřený.
Není třeba testovat přes normálový vektor. Skačí, když malinko opravím ten svůj návrh: bude se počítat absolutní hodnota skalárního součinu. Jo jinak je samozřejmě třeba vektory normovat!
Tedy celý vzoreček by byl asi takovýto:
1. najdu směrové vektory pomocí rozdílu souřadnic obou bodů
2. spočítám výraz: (skalární součin 1 a 2 vektoru)^2/((skalární součin 1 a 1 vektoru)^2*(skalární součin 2 a 2 vektoru)^2)
3. je-li výsledek 1 - rovnoběžné, 0 - kolmé, něco mezi jsou obecně různoběžné svírají úhel = acos(sqrt(výsledek))
No, ale těm operacím bych se radši vyhnul - narůstá časová složitost a dochází k nepřesnostem (normála je levná).
Nevím, co je na normále tak super. Samozřejmě musíš ty vědět, jaké funkce má ten program poskytovat. Já navrhuji řešení, které je robustní (neselže při vyšším počtu rozměrů) a je naprosto standardní (opírá se o definice skalárního součinu a příslušné věty). Alternativně můžeš na 0 testovat skalární součin obou vektorů a zároveň jednoho vektoru a normálového k druhému. Přijde mi to ale zbytečné, když se vše dá ošetřit jedním vzorečkem.
Časová složitost je stejná.
Jo a nedoporučuji normálový vektor používat protože pro více dimenzí je problém s jeho definicí (je nejednoznačný). Např.: Jaký bude normálový vektor k vektoru (1,1,1). Je to totiž celá normálová rovina.
Ty vole! Tyhle problémy bych chtěl mít! 
(By - Ay)(CyDx - CxDy) - (Dy - Cy)(AyBx - AxBy)
y = ---------------------------------------------
(By - Ay)(Dx - Cx) - (Dy - Cy)(Bx - Ax)
Nevim proc presne to neproslo tobe, ale v tom modu -pedantic si to zkus nejdriv zkompilovat na progtestu v sekci prekladace. Muze ti to na tvym systemu hazet jiny warningy nez u nich a uz to neprojde..
Z bodů zjistím k a q pro rovnici přímky y = kx + qTímto tvarem rovnice nejsi schopen popsat přímky rovnoběžné s osou y - ty chyby by mohly být pokusy počítače o dělení různých čísel nulou (ale nejsem programátor, takže netuším, jestli je to správný výklad). Blbuvzdorný tvar rovnice přímky v rovině je:
ax + by +c = 0 , kde "a" a "b" jsou pořadnice normálového vektoru k úsečce a c je konstanta, která se dopočítá dosazením souřadnic bodu ležícího na přímce za "x" a "y".
Ve tří- a vícerozměrném prostoru ti pak nezbyde, než přímky vyjadřovat parametrickými rovnicemi {x}T = {a}T + {b}Tt , kde vektor "x" jsou souřadnice libovolného bodu na přímce, vektor "a" souřadnice známého bodu ležícího na přímce, vektor "b" souřadnice směrového vektoru přímky a "t" je parametr.
0x = 0 (úsečky leží na jedné přímce, je potřeba spočítat překryv) a 0x != 0 (úsečky leží na dvou různých rovnoběžných přímkách).
vektorový součin = 0 -> rovnoběžné/na společné přímce
c1 == c2 -> na společné přímce
A, B na CD nebo C na AB -> překrývají se
jinak ne
jinak rovnoběžné
skalární součin směrových vektorů = 0 -> kolmé
jinak různoběžné
ze soustavy průsečík (jako "zlomek", abych mohl přesně zjišťovat, jestli leží na úsečce)
průsečík na AB a CD -> průsečík úseček
Hlavní je, že to funguje, jenom by to asi příště chtělo pořádnou analýzu, což nemám rád
Hlavní je, že to funguje, jenom by to asi příště chtělo pořádnou analýzu, což nemám rádHm, tak v tomhle se informatika od stavařiny moc neliší. Když se člověk vybodne na pořádnou analýzu, tak potom vycházejí v lepším případě nesmysly a v horším správně se tvářící úplně špatné výsledky...