ã¿ãªããããã«ã¡ã¯ïŒ æè¿ãk-meansã¡ãœããïŒè±èªã®k-meansïŒã䜿çšããŠç»åã»ã°ã¡ã³ããŒã·ã§ã³ãå®è£
ããã³ãŒããèšè¿°ããå¿
èŠããããŸããã ããŠãGoogleãæåã«ããããšã¯ãã«ãã§ãã æ°åŠçãªèŠ³ç¹ïŒããã«ãããã¹ãŠã®çš®é¡ã®è€éãªæ°åŠçãªèœæžããããã«å°çãæžãããŠããããšãç解ããã§ãããïŒãããã³è±èªã®ã€ã³ã¿ãŒãããäžã®ããã€ãã®ãœãããŠã§ã¢å®è£
ã®äž¡æ¹ããå€ãã®æ
å ±ãèŠã€ããŸããã ãããã®ã³ãŒãã¯ç¢ºãã«çŸãã-çãã®äœå°ã¯ãããŸããããã¢ã€ãã¢ã®æ¬è³ªãææ¡ããã®ã¯å°é£ã§ãã ã©ãããããããããã¯ãã¹ãŠè€éã§ãæ··ä¹±ããŠããŸãããæã§ãæã§ãã³ãŒããæžãããäœãç解ã§ããŸããã ãã®èšäºã§ã¯ãåçŽã§çç£çã§ã¯ãªããããã®çŽ æŽãããã¢ã«ãŽãªãºã ã®ç解å¯èœãªå®è£
ã瀺ããããšæããŸãã ãããè¡ããïŒ
ããã§ã¯ãèªèã®èŠ³ç¹ããã¯ã©ã¹ã¿ãªã³ã°ãšã¯äœã§ããïŒ äŸãæããŸãããããã°ãããã®ã³ããŒãžã®è±ã®çŽ æµãªåçããããšããŸãããã

åé¡ã¯ããã®åçã®ã»ãŒåãè²ã§å¡ãã€ã¶ãããŠããé åã®æ°ãå€æããããšã§ãã ãŸããããã¯ãŸã£ããé£ãããããŸããïŒçœãè±ã³ã-1ã€ãé»è²ã®ã»ã³ã¿ãŒ-2ã€ïŒç§ã¯çç©åŠè
ã§ã¯ãããŸãããç§ã¯ããããäœãšåŒã°ãããããããŸããïŒã3ã€ã®ç·ã ãããã®ã»ã¯ã·ã§ã³ã¯ã¯ã©ã¹ã¿ãŒãšåŒã°ããŸãã ã¯ã©ã¹ã¿ãŒã¯ãå
±éã®ç¹åŸŽïŒè²ãäœçœ®ãªã©ïŒãæã€ããŒã¿ã®çµã¿åããã§ãã ãã®ãããªã¯ã©ã¹ã¿ãŒ-ã»ã¯ã·ã§ã³å
ã®ããŒã¿ã®åã³ã³ããŒãã³ãã決å®ããŠé
眮ããããã»ã¹ã¯ãã¯ã©ã¹ã¿ãªã³ã°ãšåŒã°ããŸãã
å€ãã®ã¯ã©ã¹ã¿ãªã³ã°ã¢ã«ãŽãªãºã ããããŸãããæãåçŽãªãã®ã¯k-äžçšåºŠã®ãã®ã§ãããã«ã€ããŠã¯åŸã§èª¬æããŸãã K-meansã¯ããœãããŠã§ã¢ã¡ãœããã䜿çšããŠç°¡åã«å®è£
ã§ããã·ã³ãã«ã§å¹ççãªã¢ã«ãŽãªãºã ã§ãã ã¯ã©ã¹ã¿ã«åæ£ããããŒã¿ã¯ãã¯ã»ã«ã§ãã ãåãã®ãšãããã«ã©ãŒãã¯ã»ã«ã«ã¯3ã€ã®ã³ã³ããŒãã³ãïŒèµ€ãç·ãéïŒããããŸãã ãããã®ã³ã³ããŒãã³ãã®é¢ä»ãã«ãããæ¢åã®è²ã®ãã¬ãããäœæãããŸãã

ã³ã³ãã¥ãŒã¿ã®ã¡ã¢ãªã§ã¯ãåè²æåã¯0ã255ã®æ°åã§ç¹åŸŽä»ããããŸããã€ãŸããèµ€ãç·ãéã®ç°ãªãå€ãçµã¿åãããŠãç»é¢äžã«ã«ã©ãŒãã¬ãããååŸããŸãã
äŸãšããŠãã¯ã»ã«ã䜿çšããŠãã¢ã«ãŽãªãºã ãå®è£
ããŸãã K-meansã¯å埩ã¢ã«ãŽãªãºã ã§ããã€ãŸããããã€ãã®æ°åŠçèšç®ãäžå®åæ°ç¹°ãè¿ããåŸãæ£ããçµæãåŸãããŸãã
ã¢ã«ãŽãªãºã
- ããŒã¿ãé
ä¿¡ããããã«å¿
èŠãªã¯ã©ã¹ã¿ãŒã®æ°ãäºåã«ç¥ãå¿
èŠããããŸãã ããã¯ãã®æ¹æ³ã®é倧ãªæ¬ ç¹ã§ããããã®åé¡ã¯ã¢ã«ãŽãªãºã ã®æ¹åãããå®è£
ã«ãã£ãŠè§£æ±ºãããŸãããããã¯åœŒããèšãããã«ããŸã£ããç°ãªã話ã§ãã
- ã¯ã©ã¹ã¿ãŒã®åæäžå¿ãéžæããå¿
èŠããããŸãã ã©ããã£ãŠïŒ ã¯ããã©ã³ãã ã«ã ãªãã§ïŒ åãã¯ã»ã«ãã¯ã©ã¹ã¿ãŒã®äžå¿ã«ã¹ãããã§ããããã«ããŸãã äžå¿ã¯çã®ãããªãã®ã§ããã®åšãã«åœŒã®äž»é¡ãéãŸã£ãŠããŸã-ãã¯ã»ã«ã åãã¯ã»ã«ã誰ã«åŸããã決å®ããã®ã¯ãäžå¿ãããã¯ã»ã«ãŸã§ã®ãè·é¢ãã§ãã
- åäžå¿ããåãã¯ã»ã«ãŸã§ã®è·é¢ãèšç®ããŸãã ãã®è·é¢ã¯ã空éå
ã®ãã€ã³ãéã®ãŠãŒã¯ãªããè·é¢ãšèŠãªããããã®å Žåã3ã€ã®è²æåéã®è·é¢ãšèŠãªãããŸãã
$$衚瀺$$ \ sqrt {ïŒR_ {2} -R_ {1}ïŒ^ 2 +ïŒG_ {2} -G_ {1}ïŒ^ 2 +ïŒB_ {2} -B_ {1}ïŒ^ 2} ã$$衚瀺$$
æåã®ãã¯ã»ã«ããåäžå¿ãŸã§ã®è·é¢ãèšç®ãããã®ãã¯ã»ã«ãšäžå¿ã®éã®æå°è·é¢ã決å®ããŸãã äžå¿ã§ããæå°è·é¢ã¯ããã¯ã»ã«ã®åã³ã³ããŒãã³ã-ãã³ã°ãšãã¯ã»ã«-被åäœã®éã®ç®è¡å¹³åãšããŠåº§æšãåèšç®ããŸãã ç§ãã¡ã®ã»ã³ã¿ãŒã¯ãèšç®ã«åŸã£ãŠç©ºéãã·ããããŸãã - ãã¹ãŠã®äžå¿ãåèšç®ããåŸããã¯ã»ã«ãã¯ã©ã¹ã¿ãŒã«åé
ããåãã¯ã»ã«ããäžå¿ãŸã§ã®è·é¢ãæ¯èŒããŸãã ãã¯ã»ã«ã¯ã¯ã©ã¹ã¿ãŒã«é
眮ããããã®äžå¿ã¯ä»ã®äžå¿ãããè¿ãã«ãããŸãã
- ãã¯ã»ã«ãåãã¯ã©ã¹ã¿ãŒå
ã«ããéãããã¹ãŠãæåããå§ãŸããŸãã 倧éã®ããŒã¿ã§ã¯äžå¿ãå°ããªååŸã§ç§»åããã¯ã©ã¹ã¿ãŒã®ç«¯ã«æ²¿ã£ããã¯ã»ã«ãäžæ¹ãŸãã¯ä»æ¹ã®ã¯ã©ã¹ã¿ãŒã«ãžã£ã³ããããããããã¯é »ç¹ã«çºçããŸããã ãããè¡ãã«ã¯ãå埩ã®æ倧æ°ã決å®ããŸãã
å®è£
ãã®ãããžã§ã¯ããC ++ã§å®è£
ããŸãã æåã®ãã¡ã€ã«ã¯ãk_means.hãã§ãããã®äžã§ãäž»ãªããŒã¿åãå®æ°ãããã³äœæ¥çšã®ã¡ã€ã³ã¯ã©ã¹ãK_meansããå®çŸ©ããŸããã
åãã¯ã»ã«ãç¹åŸŽä»ããã«ã¯ã3ã€ã®ãã¯ã»ã«ã³ã³ããŒãã³ãã§æ§æãããæ§é ãäœæããŸããããæ£ç¢ºãªèšç®ã®ããã«doubleã¿ã€ããéžæããããã°ã©ã ã®å®æ°ã決å®ããŸããã
const int KK = 10;
K_meansã¯ã©ã¹èªäœïŒ
class K_means { private: std::vector<rgb> pixcel; int q_klaster; int k_pixcel; std::vector<rgb> centr; void identify_centers(); inline double compute(rgb k1, rgb k2) { return sqrt(pow((k1.r - k2.r),2) + pow((k1.g - k2.g), 2) + pow((k1.b - k2.b), 2)); } inline double compute_s(double a, double b) { return (a + b) / 2; }; public: K_means() : q_klaster(0), k_pixcel(0) {}; K_means(int n, rgb *mas, int n_klaster); K_means(int n_klaster, std::istream & os); void clustering(std::ostream & os); void print()const; ~K_means(); friend std::ostream & operator<<(std::ostream & os, const K_means & k); };
ã¯ã©ã¹ã®ã³ã³ããŒãã³ãã調ã¹ãŠã¿ãŸãããã
vectorpixcel-ãã¯ã»ã«ã®ãã¯ãã«ã
q_klaster-ã¯ã©ã¹ã¿ãŒã®æ°ã
k_pixcel-ãã¯ã»ã«æ°ã
vectorcentr-ã¯ã©ã¹ã¿ãªã³ã°äžå¿ã®ãã¯ãã«ããã®äžã®èŠçŽ ã®æ°ã¯q_klasterã«ãã£ãŠæ±ºå®ãããŸãã
identity_centersïŒïŒ-å
¥åãã¯ã»ã«éã§åæäžå¿ãã©ã³ãã ã«éžæããæ¹æ³ã
computeïŒïŒããã³compute_sïŒïŒã¯ããããããã¯ã»ã«éã®è·é¢ãèšç®ããäžå¿ãåèšç®ããããã®çµã¿èŸŒã¿ã¡ãœããã§ãã
3ã€ã®ã³ã³ã¹ãã©ã¯ã¿ãŒïŒæåã¯ããã©ã«ãã§ã2çªç®ã¯é
åãããã¯ã»ã«ãåæåããããã3çªç®ã¯ããã¹ããã¡ã€ã«ãããã¯ã»ã«ãåæåããããã§ãïŒç§ã®å®è£
ã§ã¯ããã¡ã€ã«ãæåã«èª€ã£ãŠããŒã¿ã§æºãããã次ã«ãã®ãã¡ã€ã«ãããã¯ã»ã«ãèªã¿èŸŒãŸããŸããã¡ããã©ç§ã®å Žåã«å¿
èŠãªïŒ;
ã¯ã©ã¹ã¿ãªã³ã°ïŒstd :: ostreamïŒosïŒ-ã¯ã©ã¹ã¿ãªã³ã°æ¹æ³;
ã¡ãœãããäœæããåºåã¹ããŒãã¡ã³ãããªãŒããŒããŒãããŠçµæãå
¬éããŸãã
ã¡ãœããã®å®è£
ïŒ
void K_means::identify_centers() { srand((unsigned)time(NULL)); rgb temp; rgb *mas = new rgb[q_klaster]; for (int i = 0; i < q_klaster; i++) { temp = pixcel[0 + rand() % k_pixcel]; for (int j = i; j < q_klaster; j++) { if (temp.r != mas[j].r && temp.g != mas[j].g && temp.b != mas[j].b) { mas[j] = temp; } else { i--; break; } } } for (int i = 0; i < q_klaster; i++) { centr.push_back(mas[i]); } delete []mas; }
ããã¯ãåæã¯ã©ã¹ã¿ãªã³ã°äžå¿ãéžæããŠäžå¿ãã¯ãã«ã«è¿œå ããæ¹æ³ã§ãã ãããã®å Žåãã»ã³ã¿ãŒãç¹°ãè¿ããŠäº€æããããã«ãã§ãã¯ãå®è¡ãããŸãã
K_means::K_means(int n, rgb * mas, int n_klaster) { for (int i = 0; i < n; i++) { pixcel.push_back(*(mas + i)); } q_klaster = n_klaster; k_pixcel = n; identify_centers(); }
é
åãããã¯ã»ã«ãåæåããããã®ã³ã³ã¹ãã©ã¯ã¿ãŒå®è£
ã
K_means::K_means(int n_klaster, std::istream & os) : q_klaster(n_klaster) { rgb temp; while (os >> temp.r && os >> temp.g && os >> temp.b) { pixcel.push_back(temp); } k_pixcel = pixcel.size(); identify_centers(); }
ãã¡ã€ã«ãšã³ã³ãœãŒã«ã®äž¡æ¹ããããŒã¿ãå
¥åã§ããããã«ããã®ã³ã³ã¹ãã©ã¯ã¿ãŒã«å
¥åãªããžã§ã¯ããæž¡ããŸãã
void K_means::clustering(std::ostream & os) { os << "\n\n :" << std::endl; std::vector<int> check_1(k_pixcel, -1); std::vector<int> check_2(k_pixcel, -2); int iter = 0; while(true) { os << "\n\n---------------- â" << iter << " ----------------\n\n"; { for (int j = 0; j < k_pixcel; j++) { double *mas = new double[q_klaster]; for (int i = 0; i < q_klaster; i++) { *(mas + i) = compute(pixcel[j], centr[i]); os << " " << j << " #" << i << ": " << *(mas + i) << std::endl; } double min_dist = *mas; int m_k = 0; for (int i = 0; i < q_klaster; i++) { if (min_dist > *(mas + i)) { min_dist = *(mas + i); m_k = i; } } os << " #" << m_k << std::endl; os << " #" << m_k << ": "; centr[m_k].r = compute_s(pixcel[j].r, centr[m_k].r); centr[m_k].g = compute_s(pixcel[j].g, centr[m_k].g); centr[m_k].b = compute_s(pixcel[j].b, centr[m_k].b); os << centr[m_k].r << " " << centr[m_k].g << " " << centr[m_k].b << std::endl; delete[] mas; } int *mass = new int[k_pixcel]; os << "\n : "<< std::endl; for (int k = 0; k < k_pixcel; k++) { double *mas = new double[q_klaster]; for (int i = 0; i < q_klaster; i++) { *(mas + i) = compute(pixcel[k], centr[i]); os << " â" << k << " #" << i << ": " << *(mas + i) << std::endl; } double min_dist = *mas; int m_k = 0; for (int i = 0; i < q_klaster; i++) { if (min_dist > *(mas + i)) { min_dist = *(mas + i); m_k = i; } } mass[k] = m_k; os << " â" << k << " #" << m_k << std::endl; } os << "\n : \n"; for (int i = 0; i < k_pixcel; i++) { os << mass[i] << " "; check_1[i] = *(mass + i); } os << std::endl << std::endl; os << " : " << std::endl; int itr = KK + 1; for (int i = 0; i < q_klaster; i++) { os << " #" << i << std::endl; for (int j = 0; j < k_pixcel; j++) { if (mass[j] == i) { os << pixcel[j].r << " " << pixcel[j].g << " " << pixcel[j].b << std::endl; mass[j] = ++itr; } } } delete[] mass; os << " : \n" ; for (int i = 0; i < q_klaster; i++) { os << centr[i].r << " " << centr[i].g << " " << centr[i].b << " - #" << i << std::endl; } } iter++; if (check_1 == check_2 || iter >= max_iterations) { break; } check_2 = check_1; } os << "\n\n ." << std::endl; }
ã¯ã©ã¹ã¿ãªã³ã°ã®äž»ãªæ¹æ³ã
std::ostream & operator<<(std::ostream & os, const K_means & k) { os << " : " << std::endl; for (int i = 0; i < k.k_pixcel; i++) { os << k.pixcel[i].r << " " << k.pixcel[i].g << " " << k.pixcel[i].b << " - â" << i << std::endl; } os << std::endl << " : " << std::endl; for (int i = 0; i < k.q_klaster; i++) { os << k.centr[i].r << " " << k.centr[i].g << " " << k.centr[i].b << " - #" << i << std::endl; } os << "\n : " << k.q_klaster << std::endl; os << " : " << k.k_pixcel << std::endl; return os; }
åæããŒã¿ã®åºåã
åºåäŸ
åºåäŸéå§ãã¯ã»ã«ïŒ
255140 50-No. 0
100 70 1-No. 1
150 20200-2çª
251141 51-No.3
104 69 3-No. 4
153 22210-No. 5
252138 54-第6
101 74 4-No. 7
ã©ã³ãã ãªåæã¯ã©ã¹ã¿ãªã³ã°ã»ã³ã¿ãŒïŒ
150 20200-ïŒ0
104 69 3-ïŒ1
100 70 1-ïŒ2
ã¯ã©ã¹ã¿ãŒã®æ°ïŒ3
ãã¯ã»ã«æ°ïŒ8
ã¯ã©ã¹ã¿ãŒéå§ïŒ
å埩çªå·0
ãã¯ã»ã«0ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ218.918
ãã¯ã»ã«0ããäžå¿ïŒ1ãŸã§ã®è·é¢ïŒ173.352
ãã¯ã»ã«0ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ176.992
æå°äžå¿è·é¢ïŒ1
ã»ã³ã¿ãŒã®åèšç®ïŒ1ïŒ179.5 104.5 26.5
ãã¯ã»ã«1ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ211.189
ãã¯ã»ã«1ããäžå¿ïŒ1ãŸã§ã®è·é¢ïŒ90.3369
ãã¯ã»ã«1ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ0
æå°äžå¿è·é¢ïŒ2
ã»ã³ã¿ãŒã®åèšç®ïŒ2ïŒ100 70 1
ãã¯ã»ã«2ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ0
ãã¯ã»ã«2ããäžå¿ïŒ1ãŸã§ã®è·é¢ïŒ195.225
ãã¯ã»ã«2ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ211.189
æå°äžå¿è·é¢ïŒ0
ã»ã³ã¿ãŒãæ°ããïŒ0ïŒ150 20 200
ãã¯ã»ã«3ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ216.894
ãã¯ã»ã«3ããäžå¿ïŒ1ãŸã§ã®è·é¢ïŒ83.933
ãã¯ã»ã«3ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ174.19
æå°äžå¿è·é¢ïŒ1
ã»ã³ã¿ãŒãæ°ããïŒ1ïŒ215.25 122.75 38.75
ãã¯ã»ã«4ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ208.149
ãã¯ã»ã«4ããäžå¿ïŒ1ãŸã§ã®è·é¢ïŒ128.622
ãã¯ã»ã«4ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ4.58258
æå°äžå¿è·é¢ïŒ2
ã»ã³ã¿ãŒãæ°ããïŒ2ïŒ102 69.5 2
ãã¯ã»ã«5ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ10.6301
ãã¯ã»ã«5ããäžå¿ïŒ1ãŸã§ã®è·é¢ïŒ208.212
ãã¯ã»ã«5ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ219.366
æå°äžå¿è·é¢ïŒ0
ã»ã³ã¿ãŒãæ°ããïŒ0ïŒ151.5 21 205
ãã¯ã»ã«6ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ215.848
ãã¯ã»ã«6ããäžå¿ïŒ1ãŸã§ã®è·é¢ïŒ42.6109
ãã¯ã»ã«6ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ172.905
æå°äžå¿è·é¢ïŒ1
ã»ã³ã¿ãŒã®åèšç®ïŒ1ïŒ233.625 130.375 46.375
ãã¯ã»ã«7ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ213.916
ãã¯ã»ã«7ããäžå¿ïŒ1ãŸã§ã®è·é¢ïŒ150.21
ãã¯ã»ã«7ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ5.02494
æå°äžå¿è·é¢ïŒ2
ã»ã³ã¿ãŒã®åèšç®ïŒ2ïŒ101.5 71.75 3
ãã¯ã»ã«ãåé¡ããŸãããïŒ
ãã¯ã»ã«No. 0ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ221.129
ãã¯ã»ã«No. 0ããäžå¿ãŸã§ã®è·é¢ïŒ1ïŒ23.7207
ãã¯ã»ã«No. 0ããäžå¿ãŸã§ã®è·é¢ïŒ2ïŒ174.44
ã»ã³ã¿ãŒïŒ1ã«æãè¿ããã¯ã»ã«ïŒ0
ãã¯ã»ã«1ããäžå¿ãŸã§ã®è·é¢ïŒ0ïŒ216.031
ãã¯ã»ã«1ããäžå¿ãŸã§ã®è·é¢ïŒ1ïŒ153.492
ãã¯ã»ã«No. 1ããäžå¿ãŸã§ã®è·é¢ïŒ2ïŒ3.05164
ã»ã³ã¿ãŒïŒ2ã«æãè¿ããã¯ã»ã«ïŒ1
ãã¯ã»ã«No. 2ããäžå¿ãŸã§ã®è·é¢ïŒ0ïŒ5.31507
ãã¯ã»ã«2ããäžå¿ãŸã§ã®è·é¢ïŒ1ïŒ206.825
ãã¯ã»ã«2ããäžå¿ãŸã§ã®è·é¢ïŒ2ïŒ209.378
ã»ã³ã¿ãŒïŒ0ã«æãè¿ããã¯ã»ã«ïŒ2
ãã¯ã»ã«çªå·3ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ219.126
ãã¯ã»ã«3ããäžå¿ãŸã§ã®è·é¢ïŒ1ïŒ20.8847
ãã¯ã»ã«No. 3ããäžå¿ãŸã§ã®è·é¢ïŒ2ïŒ171.609
ã»ã³ã¿ãŒïŒ1ã«æãè¿ããã¯ã»ã«ïŒ3
ãã¯ã»ã«No. 4ããäžå¿ãŸã§ã®è·é¢ïŒ0ïŒ212.989
ãã¯ã»ã«4ããäžå¿ãŸã§ã®è·é¢ïŒ1ïŒ149.836
ãã¯ã»ã«4ããäžå¿ãŸã§ã®è·é¢ïŒ2ïŒ3.71652
ã»ã³ã¿ãŒïŒ2ã«æãè¿ããã¯ã»ã«ïŒ4
ãã¯ã»ã«No. 5ããäžå¿ãŸã§ã®è·é¢ïŒ0ïŒ5.31507
ãã¯ã»ã«5ããäžå¿ãŸã§ã®è·é¢ïŒ1ïŒ212.176
ãã¯ã»ã«5ããäžå¿ãŸã§ã®è·é¢ïŒ2ïŒ219.035
ã»ã³ã¿ãŒïŒ0ã«æãè¿ããã¯ã»ã«ïŒ5
ãã¯ã»ã«çªå·6ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ215.848
ãã¯ã»ã«No. 6ããäžå¿ãŸã§ã®è·é¢ïŒ1ïŒ21.3054
ãã¯ã»ã«6ããäžå¿ãŸã§ã®è·é¢ïŒ2ïŒ172.164
ã»ã³ã¿ãŒïŒ1ã«æãè¿ããã¯ã»ã«ïŒ6
ãã¯ã»ã«No. 7ããäžå¿ãŸã§ã®è·é¢ïŒ0ïŒ213.916
ãã¯ã»ã«çªå·7ããäžå¿ãŸã§ã®è·é¢ïŒ1ïŒ150.21
ãã¯ã»ã«No. 7ããäžå¿ãŸã§ã®è·é¢ïŒ2ïŒ2.51247
ã»ã³ã¿ãŒïŒ2ã«æãè¿ããã¯ã»ã«ïŒ7
äžèŽãããã¯ã»ã«ãšäžå¿ã®é
åïŒ
1 2 0 1 2 0 1 2
ã¯ã©ã¹ã¿ãªã³ã°çµæïŒ
ã¯ã©ã¹ã¿ãŒïŒ0
150 20 200
153 22 210
ã¯ã©ã¹ã¿ãŒïŒ1
255 140 50
251 141 51
252138 54
ã¯ã©ã¹ã¿ãŒïŒ2
100 70 1
104 69 3
101 74 4
æ°ããã»ã³ã¿ãŒïŒ
151.5 21205-ïŒ0
233.625 130.375 46.375-ïŒ1
101.5 71.75 3-ïŒ2
å埩çªå·1
ãã¯ã»ã«0ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ221.129
ãã¯ã»ã«0ããäžå¿ïŒ1ãŸã§ã®è·é¢ïŒ23.7207
ãã¯ã»ã«0ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ174.44
æå°äžå¿è·é¢ïŒ1
ã»ã³ã¿ãŒãæ°ããïŒ1ïŒ244.313 135.188 48.1875
ãã¯ã»ã«1ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ216.031
ãã¯ã»ã«1ããäžå¿ïŒ1ãŸã§ã®è·é¢ïŒ165.234
ãã¯ã»ã«1ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ3.05164
æå°äžå¿è·é¢ïŒ2
ã»ã³ã¿ãŒã®åèšç®ïŒ2ïŒ100.75 70.875 2
ãã¯ã»ã«2ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ5.31507
ãã¯ã»ã«2ããäžå¿ïŒ1ãŸã§ã®è·é¢ïŒ212.627
ãã¯ã»ã«2ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ210.28
æå°äžå¿è·é¢ïŒ0
äžå¿ã®åèšç®ïŒ0ïŒ150.75 20.5 202.5
ãã¯ã»ã«3ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ217.997
ãã¯ã»ã«3ããäžå¿ïŒ1ãŸã§ã®è·é¢ïŒ9.29613
ãã¯ã»ã«3ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ172.898
æå°äžå¿è·é¢ïŒ1
ã»ã³ã¿ãŒãæ°ããïŒ1ïŒ247.656 138.094 49.5938
ãã¯ã»ã«4ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ210.566
ãã¯ã»ã«4ããäžå¿ïŒ1ãŸã§ã®è·é¢ïŒ166.078
ãã¯ã»ã«4ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ3.88306
æå°äžå¿è·é¢ïŒ2
ã»ã³ã¿ãŒãæ°ããïŒ2ïŒ102.375 69.9375 2.5
ãã¯ã»ã«5ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ7.97261
ãã¯ã»ã«5ããäžå¿ïŒ1ãŸã§ã®è·é¢ïŒ219.471
ãã¯ã»ã«5ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ218.9
æå°äžå¿è·é¢ïŒ0
ã»ã³ã¿ãŒã®ã«ãŠã³ãïŒ0ïŒ151.875 21.25 206.25
ãã¯ã»ã«6ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ216.415
ãã¯ã»ã«6ããäžå¿ïŒ1ãŸã§ã®è·é¢ïŒ6.18805
ãã¯ã»ã«6ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ172.257
æå°äžå¿è·é¢ïŒ1
ã»ã³ã¿ãŒã®åèšç®ïŒ1ïŒ249.828 138.047 51.7969
ãã¯ã»ã«7ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ215.118
ãã¯ã»ã«7ããäžå¿ïŒ1ãŸã§ã®è·é¢ïŒ168.927
ãã¯ã»ã«7ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ4.54363
æå°äžå¿è·é¢ïŒ2
ã»ã³ã¿ãŒã®åèšç®ïŒ2ïŒ101.688 71.9688 3.25
ãã¯ã»ã«ãåé¡ããŸãããïŒ
ãã¯ã»ã«No. 0ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ221.699
ãã¯ã»ã«No. 0ããäžå¿ãŸã§ã®è·é¢ïŒ1ïŒ5.81307
ãã¯ã»ã«No. 0ããäžå¿ãŸã§ã®è·é¢ïŒ2ïŒ174.122
ã»ã³ã¿ãŒïŒ1ã«æãè¿ããã¯ã»ã«ïŒ0
ãã¯ã»ã«No. 1ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ217.244
ãã¯ã»ã«1ããäžå¿ãŸã§ã®è·é¢ïŒ1ïŒ172.218
ãã¯ã»ã«ïŒ1ããäžå¿ïŒ2ãŸã§ã®è·é¢ïŒ3.43309
ã»ã³ã¿ãŒïŒ2ã«æãè¿ããã¯ã»ã«ïŒ1
ãã¯ã»ã«2ããäžå¿ãŸã§ã®è·é¢ïŒ0ïŒ6.64384
ãã¯ã»ã«No. 2ããäžå¿ãŸã§ã®è·é¢ïŒ1ïŒ214.161
ãã¯ã»ã«2ããäžå¿ãŸã§ã®è·é¢ïŒ2ïŒ209.154
ã»ã³ã¿ãŒïŒ0ã«æãè¿ããã¯ã»ã«ïŒ2
ãã¯ã»ã«No. 3ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ219.701
ãã¯ã»ã«No. 3ããäžå¿ãŸã§ã®è·é¢ïŒ1ïŒ3.27555
ãã¯ã»ã«3ããäžå¿ãŸã§ã®è·é¢ïŒ2ïŒ171.288
ã»ã³ã¿ãŒïŒ1ã«æãè¿ããã¯ã»ã«ïŒ3
ãã¯ã»ã«No. 4ããäžå¿ãŸã§ã®è·é¢ïŒ0ïŒ214.202
ãã¯ã»ã«4ããäžå¿ãŸã§ã®è·é¢ïŒ1ïŒ168.566
ãã¯ã»ã«4ããäžå¿ãŸã§ã®è·é¢ïŒ2ïŒ3.77142
ã»ã³ã¿ãŒïŒ2ã«æãè¿ããã¯ã»ã«ïŒ4
ãã¯ã»ã«5ããäžå¿ãŸã§ã®è·é¢ïŒ0ïŒ3.9863
ãã¯ã»ã«5ããäžå¿ãŸã§ã®è·é¢ïŒ1ïŒ218.794
ãã¯ã»ã«5ããäžå¿ãŸã§ã®è·é¢ïŒ2ïŒ218.805
ã»ã³ã¿ãŒïŒ0ã«æãè¿ããã¯ã»ã«ïŒ5
ãã¯ã»ã«çªå·6ããäžå¿ãŸã§ã®è·é¢ïŒ0ïŒ216.415
ãã¯ã»ã«No. 6ããäžå¿ãŸã§ã®è·é¢ïŒ1ïŒ3.09403
ãã¯ã»ã«6ããäžå¿ãŸã§ã®è·é¢ïŒ2ïŒ171.842
ã»ã³ã¿ãŒïŒ1ã«æãè¿ããã¯ã»ã«ïŒ6
ãã¯ã»ã«çªå·7ããäžå¿ïŒ0ãŸã§ã®è·é¢ïŒ215.118
ãã¯ã»ã«No. 7ããäžå¿ãŸã§ã®è·é¢ïŒ1ïŒ168.927
ãã¯ã»ã«No. 7ããäžå¿ãŸã§ã®è·é¢ïŒ2ïŒ2.27181
ã»ã³ã¿ãŒïŒ2ã«æãè¿ããã¯ã»ã«ïŒ7
äžèŽãããã¯ã»ã«ãšäžå¿ã®é
åïŒ
1 2 0 1 2 0 1 2
ã¯ã©ã¹ã¿ãªã³ã°çµæïŒ
ã¯ã©ã¹ã¿ãŒïŒ0
150 20 200
153 22 210
ã¯ã©ã¹ã¿ãŒïŒ1
255 140 50
251 141 51
252138 54
ã¯ã©ã¹ã¿ãŒïŒ2
100 70 1
104 69 3
101 74 4
æ°ããã»ã³ã¿ãŒïŒ
151.875 21.25 206.25-ïŒ0
249.828 138.047 51.7969-ïŒ1
101.688 71.9688 3.25-ïŒ2
ã¯ã©ã¹ã¿ãªã³ã°ã®çµããã
ãã®äŸã¯åãã£ãŠèšç»ãããŠããããã¯ã»ã«ã¯ãã¢çšã«éžæãããŠããŸãã ããã°ã©ã ãããŒã¿ã3ã€ã®ã¯ã©ã¹ã¿ãŒã«ã°ã«ãŒãåããã«ã¯ã2åã®å埩ã§ååã§ãã æåŸã®2åã®ç¹°ãè¿ãã®äžå¿ãèŠããšãããããå®éã«æå®ã®äœçœ®ã«æ®ã£ãŠããããšãããããŸãã
ããã«èå³æ·±ãã®ã¯ãã©ã³ãã ã«çæããããã¯ã»ã«ã®å Žåã§ãã 10åã®ã¯ã©ã¹ã¿ãŒã«åå²ããå¿
èŠããã50åã®ãã€ã³ããçæããã®ã§ã5åç¹°ãè¿ããŸããã 3ã€ã®ã¯ã©ã¹ã¿ãŒã«åå²ããå¿
èŠã®ãã50åã®ãã€ã³ããçæããã®ã§ãæ倧100åã®å埩ãèš±å¯ãããŸããã ã¯ã©ã¹ã¿ãŒãå€ãã»ã©ãããã°ã©ã ãæãé¡äŒŒãããã¯ã»ã«ãèŠã€ããŠããããããå°ããªã°ã«ãŒãã«ãŸãšããã®ãç°¡åã«ãªããéãåæ§ã§ã-ã¯ã©ã¹ã¿ãŒãå°ãªãããã€ã³ããå€ãå Žåãã¢ã«ãŽãªãºã ã¯å€ãã®å Žåãæ倧å埩æ°ãè¶
ãããšãã«ã®ã¿çµäºããŸãããã¯ã©ã¹ã¿ãŒããå¥ã®ã¯ã©ã¹ã¿ãŒãžã ãã ãããã«ã¯ã¯ã¯ã©ã¹ã¿ãŒå
ã§å®å
šã«æ±ºå®ãããŸãã
ããã§ã¯ãã¯ã©ã¹ã¿ãªã³ã°ã®çµæã確èªããŸãããã 10åã®ã¯ã©ã¹ã¿ãŒããã50ãã€ã³ãã®äŸããããã€ãã®ã¯ã©ã¹ã¿ãŒã®çµæãååŸãããããã®ããŒã¿ã®çµæãIllustratorã«éã蟌ã¿ãŸããã

åã¯ã©ã¹ã¿ãŒã§ã¯è²ã®æ¿æ·¡ãåªå¢ã§ããããšãããããŸããããã§ã¯ããã¯ã»ã«ãã©ã³ãã ã«éžæãããããšãç解ããå¿
èŠããããŸããå®éã®ç掻ã§ã®ãã®ãããªç»åã®é¡äŒŒç©ã¯ããã¹ãŠã®è²ã誀ã£ãŠå¹ãä»ããããäœããã®çš®é¡ã®ç»åã§ãããåæ§ã®è²ã®é åãéžæããããšã¯å°é£ã§ã
ãã®ãããªåçããããšããŸãããã 島ã1ã€ã®ã¯ã©ã¹ã¿ãŒãšããŠå®çŸ©ããããšãã§ããŸãããå¢å ãããšãããŸããŸãªç·ã®é°åœ±ã§æ§æãããããšãããããŸãã

ããã¯ã¯ã©ã¹ã¿ãŒ8ã§ãããå°ããããŒãžã§ã³ã§ã¯çµæã¯åæ§ã§ãïŒ

ããã°ã©ã ã®ãã«ããŒãžã§ã³ã¯ãç§ã®
GitHubã§è¡šç€ºã§ããŸãã