Ïðîñòåéøèå ãåîìåòðè÷åñêèå âû÷èñëåíèÿ; òàéìåðû â PyGame
- Ðàñòðîâàÿ ãðàôèêà: äîñòîèíñòâà è íåäîñòàòêè
Òðè ïðîñòðàíñòâà: ìàòåðèàëüíûé îáúåêò ? ìîäåëü ? îòîáðàæåíèå. Ïðèìåð èç äîêóìåíòàöèè ðàáîòàåò ñ ïðîñòðàíñòâîì îòîáðàæåíèÿ (öåëî÷èñëåííûå êîîðäèíàòû è ñêîðîñòü)
- Ïðîñòåéøèå ïðèåìû ãåîìåòðè÷åñêèõ âû÷èñëåíèé:
ñìåíà äèàïàçîíà X?[a,b] ? X'?[c,d]
ðàñïîëîæåíèå òî÷êè (x,y) îòíîñèòåëüíî âåêòîðà (x1,y1),(x2,y2).
?-Ïðîáëåìà âû÷èñëåíèÿ îðèåíòèðîâàííûõ óãëîâ. Ôóíêöèÿ atan2()
Äâà âèäà ñèíõðîíèçàöèè âðåìåíè â PyGame:
pygame.time.set_timer()
Ðàçáîð ïðèìåðà
Ïîÿñíåíèå îòíîñèòåëüíî îòðàæåíèÿ ìÿ÷à ïðè óäàðå (èñõîäíûé ôàéë â ôîðìàòå kseg):
C ? öåíòð áèòû, B ? öåíòð ìÿ÷à, O ? òî÷êà ñîóäàðåíèÿ; [OX] ? îñü OX
, l1 ? ëèíèÿ ñîóäàðåíèÿ, l2 ? ëèíèÿ îòðàæåíèÿ;
Íàì èçâåñòåí óãîë äâèæåíèÿ ìÿ÷à <XOV> è óãîë óäàðà î áèòó <XOB>
Íàäî íàéòè óãîë äâèæåíèÿ ìÿ÷à ïîñëå óäàðà <XOV??>
<XOV?> - <XOB> = <BOV??>
<V?OB> + <BOV??> - <XOV??> = -<XOV?>
Çàìåòèì, ÷òî <V?OB> = <BOV??> = <VOC>
Ïîäñòàâèì 2*<BOV??> èç (1) â (2): 2*<XOV??> - 2*<XOB> = <XOV??> - <XOV?>
<XOV??> = 2*<XOB> - <XOV?>, ãäå <XOV?> = -<VOX?> = -(?-<XOV>)
Ïîëó÷àåì <XOV??> = ?-<XOV>+2*<XOB>
Äîìàøíåå çàäàíèå
Ïðî÷èòàòü ïðî êîñîå (ïñåâäîñêàëÿðíîå) ïðîèçâåäåíèå âåêòîðîâ (íàïðèìåð, çäåñü è çäåñü
(MCCME). Ëåæèò ëè òî÷êà âíóòðè ìíîãîóãîëüíèêà.  ïåðâîé ñòðîêå ââîäÿòñÿ òðè öåëûõ ÷èñëà ? N (3˜N˜100000) è êîîðäèíàòû òî÷êè. Äàëåå â N ñòðîêàõ çàäàåòñÿ ïî ïàðå öåëûõ ÷èñåë ? êîîðäèíàòû î÷åðåäíîé âåðøèíû ïðîñòîãî (íåïåðåñåêàþùåãîñÿ, íî, âîçìîæíî, íåâûïóêëîãî) ìíîãîóãîëüíèêà â ïîðÿäêå îáõîäà ïî èëè ïðîòèâ ÷àñîâîé ñòðåëêè. Âûâåäèòå îäíó ñòðîêó: ?YES?, åñëè çàäàííàÿ òî÷êà ñîäåðæèòñÿ â ïðèâåäåííîì ìíîãîóãîëüíèêå èëè íà åãî ãðàíèöå, è ?NO? â ïðîòèâíîì ñëó÷àå.
- ðèñîâàòü ìíîãîóãîëüíèê
- ââîäèòü ìíîãîóãîëüíèê íå òåêñòîì, à ìûøüþ (íàïðèìåð, ëåâàÿ êíîïêà ìûøè íà÷èíàåò ââîä èëè äîáàâëÿåò î÷åðåäíóþ òî÷êó, ïðàâàÿ çàâåðøàåò ââîä)
- ïðè ïåðåìåùåíèè êóðñîðà (åñëè ìíîãîóãîëüíèê ãîòîâ) îòîáðàæàòü, ëåæèò ëè òî÷êà âíóòðè íåãî
ãåíåðèðîâàòü íåñàìîïåðåñåêàþùèéñÿ ñëó÷àéíûé ìíîãîóãîëüíèê, à íå ââîäèòü åãî ìûøüþ (êàê?)
- Ïðûãàþùèå øàðèêè. Â ïðÿìîóãîëüíîé êîìíàòå ïðûãàþò äâà øàðèêà.
- òàê æå, êàê â áàçîâîì ïðèìåðå (ïðîñòî óäàðÿÿñü î ñòåíû)
- ñ ó÷åòîì ñèëû òÿæåñòè
- øàðèêè ìîæíî ëîâèòü ìûøüþ (òîãäà ïîéìàííûé øàðèê íå äâèæåòñÿ)
- ?è ïåðåòàñêèâàòü
ñ ó÷åòîì ñîóäàðåíèé äðóã î äðóãà (âñïîìèíàåì ôèçèêó)
Óñëîâíûå îáîçíà÷åíèÿ
? òåìà ïî Linux
?? òåìà ïîâûøåííîé ñëîæíîñòè
? òåîðåòè÷åñêîå çàäàíèå
? òåìà äëÿ ñàìîñòîÿòåëüíîãî èçó÷åíèÿ