logos.py
Created by
schraf
Created on
July 10, 2025
8.46 KB
from turtle import *
from kandinsky import fill_rect
from time import sleep
NB = 8
casio = [ ' M ' , 64 , 86 , ' C ' , 69 , 89 , 73 , 96 , 72 , 105 , 72 , 105 , 54 , 105 , 54 , 105 , 54 , 102 , 54 , 100 , 50 , 99 , 47 , 98 , 30 , 98 , 26 , 99 , 23 , 99 , 23 , 101 , 22 , 104 , 22 , 105 , 21 , 117 , 22 , 121 , 23 , 124 , 23 , 126 , 26 , 126 , 28 , 126 , 49 , 127 , 52 , 125 , 54 , 123 , 54 , 121 , 54 , 119 , 60 , 119 , 66 , 119 , 73 , 119 , 74 , 125 , 71 , 134 , 66 , 137 , 59 , 142 , 49 , 141 , 38 , 141 , 28 , 141 , 14 , 141 , 9 , 135 , 3 , 130 , 3 , 118 , 3 , 113 , 3 , 103 , 3 , 95 , 9 , 89 , 14 , 83 , 25 , 83 , 38 , 83 , 49 , 83 , 59 , 83 , 64 , 86 , ' M ' , 111 , 97 , ' C ' , 111 , 97 , 117 , 112 , 119 , 119 , 119 , 119 , 100 , 119 , 100 , 119 , 100 , 119 , 109 , 97 , 109 , 97 , 109 , 97 , 111 , 97 , 111 , 97 , ' Z ' , ' M ' , 123 , 84 , ' C ' , 123 , 84 , 146 , 140 , 146 , 140 , 146 , 140 , 127 , 140 , 127 , 140 , 127 , 140 , 123 , 130 , 123 , 130 , 123 , 130 , 96 , 130 , 96 , 130 , 96 , 130 , 92 , 140 , 92 , 140 , 92 , 140 , 73 , 140 , 73 , 140 , 73 , 140 , 97 , 84 , 97 , 84 , 97 , 84 , 123 , 84 , 123 , 84 , ' M ' , 203 , 87 , ' C ' , 207 , 91 , 209 , 97 , 209 , 101 , 209 , 101 , 192 , 101 , 192 , 101 , 192 , 99 , 190 , 97 , 188 , 97 , 181 , 96 , 177 , 96 , 169 , 97 , 167 , 97 , 165 , 98 , 165 , 101 , 165 , 106 , 169 , 106 , 183 , 106 , 186 , 106 , 197 , 106 , 203 , 108 , 205 , 109 , 212 , 112 , 212 , 124 , 212 , 130 , 208 , 138 , 202 , 139 , 196 , 141 , 186 , 141 , 180 , 141 , 174 , 141 , 166 , 142 , 157 , 140 , 153 , 139 , 150 , 135 , 149 , 132 , 147 , 129 , 147 , 123 , 147 , 123 , 147 , 123 , 165 , 123 , 165 , 123 , 165 , 126 , 166 , 128 , 169 , 128 , 176 , 129 , 179 , 129 , 190 , 128 , 190 , 128 , 193 , 127 , 193 , 124 , 194 , 121 , 192 , 120 , 190 , 119 , 177 , 118 , 165 , 119 , 159 , 117 , 155 , 116 , 147 , 112 , 147 , 102 , 148 , 96 , 148 , 92 , 152 , 88 , 157 , 84 , 167 , 83 , 179 , 83 , 193 , 83 , 200 , 84 , 203 , 87 , ' M ' , 219 , 84 , ' C ' , 219 , 84 , 237 , 84 , 237 , 84 , 237 , 84 , 237 , 140 , 237 , 140 , 237 , 140 , 219 , 140 , 219 , 140 , 219 , 140 , 219 , 84 , 219 , 84 , ' Z ' , ' M ' , 270 , 99 , ' C ' , 278 , 98 , 281 , 98 , 289 , 99 , 292 , 99 , 295 , 99 , 295 , 105 , 295 , 111 , 296 , 114 , 295 , 119 , 295 , 125 , 292 , 126 , 289 , 126 , 282 , 127 , 277 , 127 , 270 , 126 , 266 , 126 , 264 , 125 , 263 , 119 , 263 , 114 , 263 , 110 , 263 , 105 , 264 , 99 , 266 , 99 , 270 , 99 , ' Z ' , ' M ' , 265 , 84 , ' C ' , 271 , 83 , 272 , 83 , 279 , 83 , 288 , 84 , 287 , 83 , 293 , 84 , 309 , 85 , 314 , 92 , 313 , 106 , 313 , 106 , 313 , 119 , 313 , 119 , 314 , 134 , 309 , 140 , 290 , 141 , 286 , 141 , 286 , 141 , 279 , 141 , 272 , 141 , 273 , 141 , 269 , 141 , 250 , 140 , 245 , 134 , 245 , 119 , 245 , 119 , 245 , 106 , 245 , 106 , 245 , 93 , 250 , 85 , 265 , 84 ]
fondcasio = ( 0 , 102 , 179 )
hp = [ ' M ' , 161 , 215 , ' C ' , 161 , 215 , 157 , 215 , 157 , 215 , 157 , 215 , 179 , 156 , 179 , 156 , 179 , 156 , 209 , 156 , 209 , 156 , 211 , 156 , 214 , 155 , 216 , 153 , 219 , 151 , 221 , 149 , 221 , 147 , 221 , 147 , 245 , 82 , 245 , 82 , 247 , 77 , 246 , 72 , 244 , 69 , 241 , 65 , 237 , 63 , 231 , 63 , 231 , 63 , 190 , 63 , 190 , 63 , 190 , 63 , 156 , 158 , 156 , 158 , 156 , 158 , 136 , 212 , 136 , 212 , 124 , 210 , 114 , 205 , 104 , 199 , 94 , 192 , 85 , 184 , 78 , 175 , 70 , 166 , 65 , 156 , 61 , 145 , 57 , 134 , 55 , 122 , 55 , 109 , 55 , 97 , 56 , 86 , 60 , 75 , 64 , 64 , 70 , 54 , 77 , 45 , 84 , 36 , 92 , 29 , 101 , 22 , 111 , 16 , 121 , 11 , 132 , 8 , 132 , 8 , 112 , 63 , 112 , 63 , 112 , 63 , 78 , 156 , 78 , 156 , 78 , 156 , 100 , 156 , 100 , 156 , 100 , 156 , 129 , 77 , 129 , 77 , 129 , 77 , 146 , 77 , 146 , 77 , 146 , 77 , 117 , 156 , 117 , 156 , 117 , 156 , 140 , 156 , 140 , 156 , 140 , 156 , 166 , 83 , 166 , 83 , 168 , 77 , 168 , 73 , 165 , 69 , 163 , 65 , 159 , 63 , 153 , 63 , 153 , 63 , 134 , 63 , 134 , 63 , 134 , 63 , 156 , 4 , 156 , 4 , 156 , 4 , 161 , 4 , 161 , 4 , 175 , 4 , 189 , 7 , 202 , 12 , 214 , 18 , 226 , 25 , 235 , 35 , 245 , 44 , 252 , 55 , 258 , 68 , 263 , 81 , 266 , 95 , 266 , 109 , 266 , 124 , 263 , 138 , 258 , 150 , 252 , 163 , 245 , 174 , 235 , 184 , 226 , 194 , 214 , 201 , 202 , 207 , 189 , 212 , 175 , 215 , 161 , 215 , ' Z ' , ' M ' , 224 , 77 , ' C ' , 224 , 77 , 207 , 77 , 207 , 77 , 207 , 77 , 184 , 142 , 184 , 142 , 184 , 142 , 201 , 142 , 201 , 142 , 201 , 142 , 224 , 77 , 224 , 77 , ' Z ' ]
fondhp = ( 2 , 74 , 216 )
com = [ ' M ' , 156 , 5 , ' C ' , 98 , 5 , 52 , 51 , 52 , 109 , 52 , 166 , 98 , 212 , 156 , 212 , 167 , 212 , 177 , 210 , 187 , 207 , 187 , 207 , 187 , 156 , 187 , 156 , 179 , 161 , 169 , 163 , 158 , 163 , 126 , 163 , 101 , 139 , 101 , 109 , 101 , 78 , 126 , 54 , 158 , 54 , 169 , 54 , 179 , 57 , 187 , 62 , 187 , 62 , 187 , 10 , 187 , 10 , 177 , 7 , 167 , 5 , 156 , 5 , 156 , 5 , 156 , 5 , 156 , 5 , ' Z ' , ' M ' , 265 , 69 , ' C ' , 265 , 69 , 231 , 105 , 231 , 105 , 231 , 105 , 188 , 105 , 188 , 105 , 188 , 105 , 188 , 69 , 188 , 69 , 188 , 69 , 265 , 69 , 265 , 69 , ' Z ' , ' M ' , 265 , 148 , ' C ' , 265 , 148 , 231 , 112 , 231 , 112 , 231 , 112 , 188 , 112 , 188 , 112 , 188 , 112 , 188 , 148 , 188 , 148 , 188 , 148 , 265 , 148 , 265 , 148 , ' Z ' ]
fondcom = ( 0 , 34 , 85 )
sharp = [ ' M ' , 38 , 105 , ' C ' , 30 , 104 , 23 , 103 , 23 , 100 , 23 , 97 , 28 , 96 , 36 , 97 , 44 , 98 , 51 , 100 , 58 , 103 , 58 , 103 , 63 , 94 , 63 , 94 , 57 , 92 , 46 , 90 , 36 , 90 , 25 , 89 , 7 , 90 , 6 , 101 , 5 , 111 , 20 , 114 , 29 , 116 , 38 , 118 , 47 , 119 , 47 , 122 , 47 , 124 , 44 , 126 , 36 , 126 , 26 , 125 , 18 , 122 , 10 , 118 , 10 , 118 , 4 , 127 , 4 , 127 , 13 , 131 , 25 , 133 , 36 , 134 , 49 , 134 , 64 , 132 , 64 , 121 , 64 , 112 , 55 , 108 , 38 , 105 , ' M ' , 110 , 107 , ' C ' , 110 , 107 , 83 , 107 , 83 , 107 , 83 , 107 , 83 , 91 , 83 , 91 , 83 , 91 , 69 , 91 , 69 , 91 , 69 , 91 , 69 , 132 , 69 , 132 , 69 , 132 , 83 , 132 , 83 , 132 , 83 , 132 , 83 , 116 , 83 , 116 , 83 , 116 , 110 , 116 , 110 , 116 , 110 , 116 , 110 , 132 , 110 , 132 , 110 , 132 , 124 , 132 , 124 , 132 , 124 , 132 , 124 , 91 , 124 , 91 , 124 , 91 , 110 , 91 , 110 , 91 , 110 , 91 , 110 , 107 , 110 , 107 , ' M ' , 148 , 116 , ' C ' , 148 , 116 , 158 , 100 , 158 , 100 , 158 , 100 , 167 , 116 , 167 , 116 , 167 , 116 , 148 , 116 , 148 , 116 , ' M ' , 152 , 91 , ' C ' , 152 , 91 , 127 , 132 , 127 , 132 , 127 , 132 , 138 , 132 , 138 , 132 , 138 , 132 , 143 , 124 , 143 , 124 , 143 , 124 , 172 , 124 , 172 , 124 , 172 , 124 , 177 , 132 , 177 , 132 , 177 , 132 , 194 , 132 , 194 , 132 , 194 , 132 , 169 , 91 , 169 , 91 , 169 , 91 , 152 , 91 , 152 , 91 , ' M ' , 250 , 109 , ' C ' , 254 , 104 , 253 , 98 , 247 , 94 , 241 , 91 , 229 , 90 , 222 , 90 , 211 , 90 , 203 , 90 , 197 , 91 , 197 , 91 , 197 , 132 , 197 , 132 , 197 , 132 , 211 , 132 , 211 , 132 , 211 , 132 , 211 , 98 , 211 , 98 , 216 , 97 , 221 , 97 , 223 , 97 , 229 , 97 , 232 , 98 , 234 , 100 , 237 , 101 , 238 , 106 , 234 , 108 , 232 , 111 , 227 , 112 , 215 , 110 , 215 , 110 , 214 , 113 , 214 , 113 , 214 , 113 , 235 , 132 , 235 , 132 , 235 , 132 , 255 , 132 , 255 , 132 , 255 , 132 , 235 , 116 , 235 , 116 , 240 , 115 , 247 , 113 , 250 , 109 , ' M ' , 296 , 109 , ' C ' , 293 , 111 , 290 , 111 , 284 , 111 , 280 , 111 , 276 , 110 , 272 , 110 , 272 , 110 , 272 , 98 , 272 , 98 , 277 , 97 , 283 , 97 , 285 , 97 , 290 , 97 , 293 , 98 , 296 , 100 , 298 , 101 , 299 , 106 , 296 , 109 , ' M ' , 308 , 94 , ' C ' , 302 , 91 , 292 , 90 , 283 , 90 , 272 , 90 , 264 , 90 , 258 , 91 , 258 , 91 , 258 , 132 , 258 , 132 , 258 , 132 , 272 , 132 , 272 , 132 , 272 , 132 , 272 , 117 , 272 , 117 , 277 , 118 , 282 , 119 , 287 , 118 , 298 , 118 , 307 , 116 , 311 , 111 , 316 , 105 , 315 , 98 , 308 , 94 ]
fondsharp = ( 230 , 0 , 13 )
ti = [ ' M ' , 246 , 72 , ' C ' , 246 , 72 , 246 , 46 , 246 , 46 , 246 , 46 , 205 , 46 , 205 , 46 , 205 , 46 , 199 , 72 , 199 , 72 , 199 , 72 , 214 , 72 , 214 , 72 , 214 , 72 , 210 , 96 , 210 , 96 , 210 , 96 , 195 , 96 , 195 , 96 , 195 , 96 , 189 , 122 , 189 , 122 , 189 , 124 , 189 , 125 , 189 , 126 , 187 , 134 , 191 , 134 , 202 , 134 , 202 , 134 , 197 , 159 , 197 , 159 , 197 , 159 , 177 , 159 , 177 , 159 , 159 , 159 , 144 , 159 , 148 , 140 , 148 , 137 , 149 , 134 , 150 , 132 , 150 , 132 , 157 , 96 , 157 , 96 , 157 , 96 , 142 , 96 , 142 , 96 , 142 , 96 , 147 , 72 , 147 , 72 , 147 , 72 , 161 , 72 , 161 , 72 , 161 , 72 , 167 , 46 , 167 , 46 , 167 , 46 , 153 , 46 , 153 , 46 , 153 , 46 , 153 , 6 , 153 , 6 , 153 , 6 , 103 , 6 , 103 , 6 , 103 , 6 , 103 , 86 , 103 , 86 , 103 , 86 , 44 , 86 , 44 , 86 , 45 , 107 , 64 , 110 , 71 , 125 , 75 , 135 , 79 , 153 , 93 , 153 , 103 , 153 , 103 , 140 , 116 , 140 , 130 , 140 , 135 , 165 , 147 , 186 , 156 , 202 , 171 , 213 , 184 , 214 , 195 , 215 , 200 , 211 , 200 , 211 , 197 , 205 , 196 , 199 , 196 , 190 , 196 , 177 , 206 , 164 , 218 , 155 , 234 , 143 , 252 , 138 , 258 , 137 , 258 , 137 , 258 , 95 , 258 , 95 , 258 , 95 , 246 , 89 , 246 , 72 , ' Z ' , ' M ' , 178 , 134 , ' C ' , 178 , 134 , 196 , 46 , 196 , 46 , 196 , 46 , 176 , 46 , 176 , 46 , 176 , 46 , 158 , 134 , 158 , 134 , 158 , 134 , 178 , 134 , 178 , 134 , 178 , 134 , 178 , 134 , 178 , 134 , ' Z ' , ' M ' , 201 , 18 , ' C ' , 201 , 18 , 181 , 18 , 181 , 18 , 181 , 18 , 177 , 37 , 177 , 37 , 177 , 37 , 197 , 37 , 197 , 37 , 197 , 37 , 201 , 18 , 201 , 18 , ' Z ' ]
fondti = ( 204 , 0 , 0 )
canon = [ ' M ' , 54 , 130 , ' C ' , 39 , 130 , 28 , 118 , 28 , 104 , 28 , 90 , 39 , 78 , 54 , 78 , 59 , 78 , 64 , 79 , 68 , 82 , 68 , 82 , 54 , 104 , 54 , 104 , 54 , 104 , 80 , 89 , 80 , 89 , 77 , 85 , 73 , 81 , 68 , 78 , 62 , 74 , 53 , 72 , 44 , 72 , 30 , 72 , 18 , 77 , 11 , 84 , 6 , 90 , 3 , 97 , 3 , 104 , 3 , 112 , 6 , 118 , 11 , 124 , 18 , 131 , 30 , 136 , 43 , 136 , 57 , 136 , 69 , 131 , 75 , 124 , 76 , 124 , 76 , 123 , 76 , 123 , 76 , 123 , 75 , 119 , 75 , 119 , 71 , 126 , 63 , 130 , 54 , 130 , ' M ' , 107 , 128 , ' C ' , 102 , 128 , 98 , 124 , 98 , 119 , 98 , 114 , 102 , 110 , 107 , 110 , 112 , 110 , 117 , 114 , 117 , 119 , 117 , 124 , 112 , 128 , 107 , 128 , 107 , 128 , 107 , 128 , 107 , 128 , ' Z ' , ' M ' , 141 , 135 , ' C ' , 141 , 135 , 130 , 94 , 130 , 94 , 128 , 88 , 122 , 83 , 115 , 83 , 113 , 83 , 111 , 83 , 109 , 84 , 109 , 84 , 86 , 92 , 86 , 92 , 86 , 92 , 110 , 92 , 110 , 92 , 110 , 92 , 114 , 108 , 114 , 108 , 110 , 104 , 105 , 102 , 99 , 102 , 88 , 102 , 79 , 110 , 79 , 119 , 79 , 128 , 88 , 136 , 99 , 136 , 107 , 136 , 115 , 132 , 119 , 126 , 119 , 126 , 121 , 135 , 121 , 135 , 121 , 135 , 141 , 135 , 141 , 135 , 141 , 135 , 141 , 135 , 141 , 135 , ' Z ' , ' M ' , 185 , 83 , ' C ' , 184 , 83 , 182 , 83 , 181 , 84 , 181 , 84 , 166 , 91 , 166 , 91 , 165 , 86 , 161 , 83 , 157 , 83 , 155 , 83 , 154 , 83 , 153 , 84 , 153 , 84 , 134 , 92 , 134 , 92 , 134 , 92 , 147 , 92 , 147 , 92 , 147 , 92 , 147 , 135 , 147 , 135 , 147 , 135 , 166 , 135 , 166 , 135 , 166 , 135 , 166 , 97 , 166 , 97 , 166 , 94 , 168 , 92 , 171 , 92 , 174 , 92 , 176 , 94 , 176 , 97 , 176 , 97 , 176 , 135 , 176 , 135 , 176 , 135 , 195 , 135 , 195 , 135 , 195 , 135 , 195 , 92 , 195 , 92 , 195 , 87 , 190 , 83 , 185 , 83 , ' M ' , 231 , 91 , ' C ' , 230 , 88 , 227 , 86 , 223 , 87 , 220 , 88 , 218 , 91 , 219 , 94 , 219 , 94 , 229 , 128 , 229 , 128 , 229 , 131 , 233 , 133 , 236 , 132 , 239 , 132 , 241 , 128 , 240 , 125 , 240 , 125 , 231 , 91 , 231 , 91 , 231 , 91 , 231 , 91 , 231 , 91 , ' Z ' , ' M ' , 257 , 110 , ' C ' , 257 , 124 , 245 , 136 , 230 , 136 , 215 , 136 , 203 , 124 , 203 , 110 , 203 , 95 , 215 , 83 , 230 , 83 , 245 , 83 , 257 , 95 , 257 , 110 , 257 , 110 , 257 , 110 , 257 , 110 , ' Z ' , ' M ' , 305 , 83 , ' C ' , 303 , 83 , 302 , 83 , 301 , 84 , 301 , 84 , 285 , 91 , 285 , 91 , 285 , 86 , 281 , 83 , 276 , 83 , 275 , 83 , 273 , 83 , 272 , 84 , 272 , 84 , 254 , 92 , 254 , 92 , 254 , 92 , 267 , 92 , 267 , 92 , 267 , 92 , 267 , 135 , 267 , 135 , 267 , 135 , 286 , 135 , 286 , 135 , 286 , 135 , 286 , 97 , 286 , 97 , 286 , 94 , 288 , 92 , 290 , 92 , 293 , 92 , 295 , 94 , 295 , 97 , 295 , 97 , 295 , 135 , 295 , 135 , 295 , 135 , 314 , 135 , 314 , 135 , 314 , 135 , 314 , 92 , 314 , 92 , 314 , 87 , 310 , 83 , 305 , 83 ]
fondcanon = ( 204 , 0 , 0 )
def move ( x , y ):
goto ( x - 160 , 110 - y )
def coord ( a , b , c , d , t ):
return a * ( 1 - t ) ** 3 + 3 * b * t * ( 1 - t ) ** 2 + 3 * c * t * t * ( 1 - t ) + d * t ** 3
def bezier ( l ):
pendown ()
t = 0
for i in range ( NB + 1 ):
x = coord ( l [ 0 ], l [ 2 ], l [ 4 ], l [ 6 ], t )
y = coord ( l [ 1 ], l [ 3 ], l [ 5 ], l [ 7 ], t )
move ( x , y )
t += 1 / NB
speed ( 0 )
def logo ( svg , fond ):
i = 0
fill_rect ( 0 , 0 , 320 , 222 , fond )
color ( ' white ' )
pensize ( 2 )
showturtle ()
while i < len ( svg ):
if svg [ i ] == " M " :
l = [ svg [ i + 1 ], svg [ i + 2 ]]
penup ()
move ( l [ 0 ], l [ 1 ])
i += 3
elif svg [ i ] == " Z " or svg [ i ] == " C " : i += 1
else :
for j in range ( 6 ): l . append ( svg [ i + j ])
bezier ( l )
l = [ svg [ i + 4 ], svg [ i + 5 ]]
i += 6
hideturtle ()
sleep ( 2 )
while True :
for ( s , f ) in ( casio , fondcasio ),( hp , fondhp ),( ti , fondti ),( sharp , fondsharp ),( com , fondcom ),( canon , fondcanon ):
logo ( s , f )