rebol [ title: "Ympyröitä kuvaan" ] maxx: 1280 maxy: 720 säde: 20 säde2: 2 * säde plot: copy[] append plot compose [] append plot [line-width 1 fill-pen black] ympyrät: [[1159 548] [680 516] [739 158] [381 249] [1203 161] [639 548] [412 145] [338 320] [1228 105] [1211 678] [953 140] [944 565] [995 394] [222 240] [38 147] [184 667] [815 359] [84 25] [1134 207] [95 551] [482 359] [157 600] [547 600] [438 578] [999 215] [789 224] [959 355] [682 113] [1025 656] [400 366] [37 341] [47 387] [1211 571] [809 509] [519 537] [198 558] [60 190] [977 447] [1080 125] [799 604] [209 469] [655 600] [476 307] [560 529] [1018 552] [284 161] [538 364] [154 60] [1209 338] [932 304] [648 328] [1073 480] [1101 682] [387 695] [821 658] [1097 341] [828 24] [146 143] [698 445] [1160 600] [40 255] [51 96] [1220 419] [97 291] [114 230] [106 449] [481 36] [478 670] [188 209] [731 643] [609 389] [857 604] [1176 273] [319 262] [30 429] [168 466] [254 78] [1101 249] [840 193] [698 382] [456 96] [639 118] [809 424] [842 243] [1068 35] [1069 209] [945 488] [104 686] [1246 66] [232 615] [846 486] [1123 88] [1247 290] [770 92] [1049 350] [579 119] [289 216] [699 314] [229 281] [453 172] [748 546] [1013 511] [316 626] [941 192] [857 139] [1193 70] [706 69] [23 503] [306 35] [1174 441] [1119 153] [752 320] [470 467] [1162 165] [225 110] [911 401] [1116 530] [458 270] [985 595] [781 150] [334 412] [1167 368] [594 185] [585 342] [543 74] [951 46] [855 285] [864 663] [589 249] [1029 417] [542 684] [1231 245] [891 489] [501 132] [1072 292] [1105 394] [909 82] [124 368] [380 552] [653 700] [1042 175] [619 47] [883 176] [1070 648] [723 116] [754 470] [434 316] [1251 520] [1014 311] [408 92] [756 26] [374 625] [856 406] [291 399] [90 114] [318 553] [731 416] [50 53] [377 61] [760 254] [135 328] [913 233] [878 43] [81 645] [636 458] [430 633] [212 697] [645 269] [348 365] [168 364] [279 528] [773 398] [545 303] [322 116] [969 281] [138 660] [289 330] [331 164] [637 221] [271 593] [273 640] [545 143] [475 217] [1187 111] [581 471] [523 249] [228 178] [1187 219] [1069 557] [932 656] [125 504] [697 223] [1020 93] [174 98] [1147 48] [402 419] [887 547] [1146 475] [996 689] [613 305] [325 675] [1183 500] [890 698] [583 623] [901 361] [527 450] [237 404] [32 636] [463 534] [1161 655] [998 146] [376 179] [74 484] [792 284] [260 36] [847 91] [1244 165] [1228 637] [572 419] [243 501] [208 29] [1259 207] [299 451] [1012 35] [83 364] [635 505] [1105 454] [113 181] [1136 309] [501 608] [378 308] [673 22] [226 361] [412 479] [134 418] [21 546] [178 410] [595 557] [343 512] [1057 250] [770 672] [1111 608] [960 88] [201 510] [156 545] [634 653] [693 575] [257 458] [423 22] [524 189] [482 419] [361 102] [677 166] [491 503] [911 140] [587 694] [699 673] [125 26] [358 462] [107 610] [861 347] [85 413] [1221 463] [632 164] [183 292] [272 280] [64 594] [255 678] [35 683] [972 532] [901 592] [1029 464] [817 317] [1051 601] [838 558] [735 363] [1144 696] [925 525] [1221 28] [441 375] [554 25] [983 642] [1259 700] [536 495] [63 525] [347 214] [588 76] [402 212] [151 248] [903 448] [187 155] [795 557] [750 204] [741 600] [434 675] [1061 390] [48 297] [420 539] [300 77] [112 75] [953 413] [937 613] [650 382] [714 492][687 267] [810 73] [237 543] [689 632] [147 204] [1247 387] [1073 84] [1252 593] [525 644] [890 310] [809 467] [1068 436] [500 91] [1012 266] [345 595] [715 21] [1256 341] [658 61] [529 408] [1056 694] [1108 25] [347 32] [274 115] [1140 418] [1260 440] [24 217] [207 73] [23 588] [957 231] [443 434] [728 281] [836 698] [810 116] [194 332] [1001 350] [954 696] [246 320] [556 222] [412 278] [737 698] [304 495] [1147 122] [21 21] [151 699] [614 595] [291 699] [192 625] [489 567] [385 510] [398 589] [1054 517] [659 424] [1038 132] [915 22] [512 331] [893 269] [1179 22] [267 365] [895 635] [1144 247] [437 234] [875 217] [80 154] [73 229] [138 287] [167 21] [861 447] [768 510]] foreach ymp ympyrät [ x0: ymp/1 y0: ymp/2 append plot compose [ circle (as-pair (x0) (y0)) (säde) ] ] liianlähellä: func [x y][ ;funktio palauttaa arvon true, jos ympyrä x,y on liian lähellä jotain jo laitettua ympyrää foreach ymp ympyrät [ ;käydään kaikki laitetut ympyrät läpi ja tutkitaan löytyykö yhtään joka asettuisi päällekkäin uuden kanssa dx: ymp/1 - x dy: ymp/2 - y etäisyys: square-root ((dx * dx) + (dy * dy)) if (etäisyys <= (säde2 + 1)) [ return true ] ] return false ] ;käydään jokainen pixeli läpi ja tutkitaan mahtuuko ympyrä for x säde (maxx - säde) 1 [ for y säde (maxy - säde) 1 [ if not (liianlähellä x y) [ append/only ympyrät compose to-block [(x) (y)] ;arvottu ympyrä kelpasi, laitetaan se ympyrät blockiin ja piirretään punaisella print [x y] append plot compose [ fill-pen red circle (as-pair (x) (y)) (säde) ] ] ] prin [x ","] ] main: layout [ panel1: box (as-pair (maxx) (maxy)) white effect reduce ['draw plot] ] view main image: to-image main save/png %ymp03.png image halt