Diskuze: Matematika v Javě
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 16 zpráv z 16.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, myslím, že to je z toho důvodu, že tvůj výpočet je nepřesný na takovéto počítání. Ve floatu se Ti postupně usazuje nepřesnost, která způsobí výchylku.
Jak myslíš, že se bude chovat tento kus kódu?
float i = 0.0f;
while (i != 1.0f){
i += 0.1f;
}
No, ano k tomuto jsem došel taky ale nevěděl jsem jak to vyřešit a za
druhé asi to je ránem nebo nevím ale nevím jak zakompojnovat tento kus kódu
do výpočtu, děkuji za odpověď 
Napadlo mě to po ránu vyřešit trošku horším způsobem 
float angleleft = (float)(Math.atan2(y - 250, x - 250) - Math.PI/2);
float angle = (float)(Math.atan2(y - 250, x - 250));
x -= Math.cos(angleleft)*16;
y -= Math.sin(angleleft)*16;
float distance = (float)Math.sqrt((x-250)*(x-250)+(y-250)*(y-250));
if (distance > 100) {
x -= Math.cos(angle);
y -= Math.sin(angle);
}
else if (distance < 100) {
x += Math.cos(angle);
y += Math.sin(angle);
}
Float je nevhodný typ pro výpočty při kterých záleží na naprosté přesnosti. Použij BigDecimal.
Ten kosinus a sinus vynásobený poloměrem je přímo pozice nějamého bodu na kružnici. V kódu to ale máš jako posun
Děkuju za odpověď ale ( nemyslím to špatně ) potřebuju to videť v
kódu
děkuju 
Můj aktuální kód vypadá takhle 
x -= Math.cos(Math.atan2(y - 300, x - 300) - (Math.PI / 2)) * rotationSpeed;
y -= Math.sin(Math.atan2(y - 300, x - 300) - (Math.PI / 2)) * rotationSpeed;
Tady je můj kód v Pythonu, na kterém mi to v noci fungovalo:
#!/usr/bin/env python3
from math import *
# všechno inty
x = 300
y = 300
max_x = x
max_y = y
min_x = x
min_y = y
while True:
angle = int(atan2(y - 250, x - 250) - pi/2) # float -> int
x -= int(cos(angle)*25) # float -> int
y -= int(sin(angle)*25) # float -> int
# testy, že je na maximu/minimu - mělo by vypisovat stejná čísla po chvíli
if (x == max_x or y == max_y): print("Dosáhlo se maxima", x, y)
if (x == min_x or y == min_y): print("Dosáhlo se minima", x, y)
if (x > max_x): max_x = x
if (y > max_y): max_y = y
if (x < min_x): min_x = x
if (y < min_y): min_y = y
Tohle už jde:
#!/usr/bin/env python3
import pygame
import sys
from pygame.locals import *
from math import *
pygame.init()
fpsClock = pygame.time.Clock()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption('Rotation')
center_x = 300
center_y = 200
perimeter = 100
points = 100
i = 0
while True:
screen.fill((0, 0, 0))
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
i = (i + 1) % points
x = center_x + int(cos(2*pi*i/points)*perimeter)
y = center_y + int(sin(2*pi*i/points)*perimeter)
pygame.draw.circle(screen, (0, 200, 100), (x, y), 5, 0)
pygame.display.update()
fpsClock.tick(30)
Zobrazeno 16 zpráv z 16.
