Anonymní profil peter – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil peter – Programujte.comAnonymní profil peter – Programujte.com

 

Příspěvky odeslané z IP adresy 2001:718:2601:258:980:294f:8ae5:37c5...–

peter
.NET › Srovnání dvou polí
12. 8. 2022   #390347

   

a = [121, 144, 19, 161, 19, 144, 19, 11]
b = [121, 14641, 20736, 361, 25921, 361, 20736, 361]
Array.Sort(a); // 11, 19, 19, ...
Array.Sort(b); // 121, 361, 361, ...
a[i] != b[i] * b[i]
11   != 121 * 121 // ze by divna podminka? :)
19   != 361 * 361
peter
.NET › Elipsa a rozpočítání bodů
12. 8. 2022   #390345

Pokud by ti teda nezalezelo na presnosti (cca 5%), tak by slo pouzit vepsany kosodelnik (body -a,0, +a,0, -b,0, +b,0) a jeho obvod rozdelit n. A pak ty uhly protahnout na elipsu. Pripadne zjistit vepsany a opsany a urcit si nejaky uprostred (presnost cca 2%).

Nebo, vepsat vepsat n-uhelnik delitelny 4. To pak jsou krajni body stejne jako u kosodelniku. Cely tvar se 4x opakuje, vypocet se zjednodusi 4x. (o to ses vlastne mozna pokousel). Pac jde o useckovy utvar, opet by melo byt jednodussi delit jeho obvod. Ale nevim, zda to neni stejny problem jako puvodni zadani :)
Nicmene, slo by treba tam vepsat 10x-n uhelnik, 10x vetsi. A tim bys nahradil jakoze elipsu. A na obvodu tohoto utvaru by to bylo snadnejsi pocitat. Kazda ta strana nemusi bys stejna. Tobe jde jen o to, ziskat priblizne uhly. Pro vykresleni rohu utvaru by slo prave pouzit ty rovnice (nejsem si ted jisty, zda to je presne ten kod, naposled jsem s tim delal nejake experimenty a nevim, co z toho jeste jede)

   	angle_step = Math.PI * 2/n,
	angle_end = Math.PI * 2,
	d = 2 * Math.PI / n,
	k = 0;
	arr = [];
		arr[k] = new classPoint(
			Math.round( c.x + a * Math.cos(0) ),
			Math.round( c.y - b * Math.sin(0) )
			);
		k++;
	for (angle=1; angle<angle_end; angle+=angle_step)
		{
		arr[k] = new classPoint(
			Math.round(c.x + a * Math.cos(d*k)),
			Math.round(c.y + b * Math.sin(d*k))
			);
		k++;
		}

cili, n bys zvolil tak 20-40, pro 10 uhelnik. A pak tenhle utvar vicemene nahrazuje elipsu.
Ale, nevim, zda ti to k necemu bude, prilis jsem nepromyslel, co s tim. Asi bych spocital delky stran, obvod a ten pak rozdelil pomoci n. Body by mohli kopirovat elipsu vicemene tak s 3% chybou.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý