Касаемо скорости выполнения, если вы не хотите ждать, то можно прописать speed(1000) и она не будет уже не черепашкой, а зайчиком :)
@inf99ballov2 жыл бұрын
ахах, спасибо)
@a3ldi2 жыл бұрын
Или tracer(False), тогда анимация отключается вообще
@ДмитрийМаков-ы6т2 жыл бұрын
А еще лучше прописать speed(0). Это самая быстрая скорость по дефолту)
@彩清-o1k2 жыл бұрын
@@ДмитрийМаков-ы6т а еще лучше на c++ / c# написать
@Deus_EG2 жыл бұрын
@@ДмитрийМаков-ы6т полностью согласен, работать не будет
@gerasimnotfound84389 ай бұрын
стоит отметить то, чтобы найти нужное кол-во повторений в for i in range(x) можно прибегнуть к формуле 360/(угол поворота), например для треугольника угол поворота по условию 120, значит 360/120 = 3 - то, что нужно записать в range(x) вместо x
@inf99ballov2 жыл бұрын
Дописываем в начале строчку speed(1000) и программа работает практически мгновенно! p.s. за комментарий спасибо makar on Также выражаю благодарность каналу /dev/inf (кстати, не забудьте подписаться) за оперативность и креативность! Признаю, похоже в создании этого кода меня опередили 😅
@setqbyte2 жыл бұрын
так speed(0) это же максимальная скорость, разве нет?
@Deus_EG2 жыл бұрын
@@setqbyte да там чел где-то увидел прогу, записал, а документацию к модулю даже не пробовал изучить
@n1ce6442 жыл бұрын
tracer(0) и update() шутка?
@ob0-china Жыл бұрын
hideturtle() еще можно
@the_byte. Жыл бұрын
есть вопрос касаемо неправильного ответа, куда можно написать?
@НастяМарятова-ф9п Жыл бұрын
Классная подача материала. Как раз не понимала, как решать задания с большими числами. Теперь все ясно
@Mi_Nare2 жыл бұрын
Спасибо огромное! Долго тупила, как можно сделать автоподсчёт точек. Ваше видео просто спасло)
@tatey93792 жыл бұрын
Можно ещё проще сделать. В начале перед begin_still пишем "tracer(0)", затем в конце перед done пишем "update()"
@annax3163 Жыл бұрын
почему-то ответ получается другой
@bmxnoobas1367 Жыл бұрын
Прошу заметить, что для нахождения всех точек внутри стоит написать item >= 1
@kozanuch4405 Жыл бұрын
Нет, код и без этого работает как надо
@merka23911 ай бұрын
СПАСИБО! Объясняю чем помогло: Стираем item[0] == 5 И len(item) == 1 исправляем на item >= 1 Профит: теперь прога считает И точки НА ЛИНИИ, т.е. на границе
@kozanuch440511 ай бұрын
@@merka239 ? он говорит про все точки внутри, точки на линии НЕ считаются за точки внутри фигуры. К тому же твой коммент не имеет смысла, автор писал как считать с точками на линии. К тому же до этого можно и додуматься если умеешь хоть чу-чуть думать головой.
@merka23911 ай бұрын
@@kozanuch4405 да, я проверил, оказалось просто задача попалась такая, что просто удачно сошлось. А на деле всё не так. Плюсом я нашёл видос который рассматривает эту тему. Как оказывается это всё бред и работает только если повезёт с задачей. Сами попробуйте очень много таких задач порешать и убедитесь. Так ещё к минусам данного способа, что нельзя почитать точки на линиях.
@keyplaygame2482 Жыл бұрын
Забавный факт, если для ускорения отрисовки использовать tracer(0) и не использовать update() перед циклом подсчёта точек, то получится близкое значение, но неверное. Но если обновить экран перед проверкой, то результат будет такой же, как и без использования tracer().
@vssimple67827 ай бұрын
лучший чемпик
@ИмамРасулов-ц8т5 ай бұрын
Спасибо!!! Я думал почему не выходит
@Vincent._. Жыл бұрын
Здравствуйте, подскажите пожалуйста что делать если фигуры две, они пересекаются и нужно найти точки на их объединении?
@redtroll2830 Жыл бұрын
Подскажите пожалуйста а как сделать чтобы считало не только точки внутри фигуры но и точки на границе?
@dinarik06475 ай бұрын
Убрать and item[0] == 5
@thefall1673 Жыл бұрын
что необходимо добавить, чтобы посчитать кол-во точек и на линии помимо внутренней части? Просто увеличить шаг на один?
@ЗандаБукаева2 жыл бұрын
классное объяснение, не понимала как написать прогу, сейчас кажется все легко, спасибо большое!!!!
@Richard_25511 ай бұрын
Во втором номере, где был квадрат, можно было воспользоваться формулой по нахождении площади, по сути 25*25=625.
@АндрейДенисов-б3н Жыл бұрын
Отличное решение, но советую вместо item[0] == 5 использовать canvas.itemcget(item[0], 'fill') == 'red', это избавит от непредвиденных ошибок)
@kozanuch4405 Жыл бұрын
Каких ошибок?Все итак работает
@fasfq186211 ай бұрын
@@kozanuch4405вы видимо не знаете питон😅
@PROCODING9 ай бұрын
спасибо, помогло
@Teacher_inf2 жыл бұрын
Доброго времени суток! Отличный код, спасибо, по вариантам Крылова спасал, пока не дошел до 6. вроде максимально просто по условию . Повтори 10[вперед 123 направо 120] точки внутри области. Мой код: from turtle import * color('black','red') speed(100) m = 200 begin_fill() left(90) for i in range(10): forward(123*m) right(120) end_fill() canvas = getcanvas() cnt = 0 for y in range(-200*m, 200*m, m): for x in range(-200*m, 200*m, m): item = canvas.find_overlapping(x, y, x, y) if len(item) == 1 and item[0] == 5: cnt += 1 print(cnt) done() exit() P.S. Я знаю, что за фигура и лишний диапазон(range) убирал, но как не крути ответ не подходит... Вывод: 6488 А должен быть по ответам Крылова: 7156 Прошу помочь разобраться.
@inf99ballov2 жыл бұрын
проверил вторым способом, ответ 6488 правильный в сбонике опечатка
@shinratensei580 Жыл бұрын
@@inf99ballov меня тоже беспокоит именно эта задача. уж слишком громко звучит то, что в сборнике опечатка. сборник то официальный, вряд ли там так накосячить могли. где можно убедиться в том, что там и правда ошибка?
@qpjlekcep7592 Жыл бұрын
у тебя в цикле цифра десять, но он рисует треугольник. Он же сказал, что лучше новые линии поверх фигуры лучше не печатать. Там 3 должно быть в fot i in range(3):
@inf99ballov Жыл бұрын
@@shinratensei580 я считал другими способами через уравнение прямых. Не доверяйте официальным сборникам на 100 процентов - говорю по своему опыту . В сборниках за 21 и за 22 год тоже были опечатки. А в этом году опечатки в 6 задачах мы нашли уже штуки 4 а то и больше
@shinratensei580 Жыл бұрын
@@qpjlekcep7592 делал этот же алгоритм, но с цифрой 3. Ответ не поменялся
@DEMON-eh1sp Жыл бұрын
Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд n (где n - целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова, и Направо m (где m - целое число), вызывающая изменение направления движения на m градусов по часовой стрелке. Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз. Черепахе был дан для исполнения следующий алгоритм: Повтори 4 [Вперёд 12 Направо 90] Повтори 3 [Вперёд 12 Направо 120] Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом: Повтори 4 [Вперёд 12 Направо 90] и находиться вне области, ограниченной линией, заданной данным алгоритмом: Повтори 3 [Вперёд 12 Направо 120]. Точки на линии учитывать не следует КАК СЛЕЛАТЬ
@haha4un6 ай бұрын
посчитай точки внутри каждой из фигур, а затем вычти из большее меньшее? (хз, если работает, то отпишись. А то я не проверял мою идею)
@MrAndrew0052 жыл бұрын
Если вершины многоугольника имеют целочисленные координаты, то зная площадь данного многоугольника можно посчитать количество точек с целочисленными координатами через формулу Пика.
@inf99ballov2 жыл бұрын
согласен, но не во всех задачах, к сожалению, вершины в целочисленных координатах лежат🥲
@quorti3278 Жыл бұрын
А что нужно прописать если всё же нужно посчитать точки на линии фигуры?
@evgenyland44482 жыл бұрын
революционно. утерли нос разработчикам. спасибо 🔥🔥🔥
@Совет_силы Жыл бұрын
Утерли нос разработчикам? А ты думаешь, что они так и хотели, чтобы мы точки считали 30 минут?
@fasfq186211 ай бұрын
@@Совет_силы😂😂😂
@shawtyfromnorthside4887 Жыл бұрын
а как найти точки на контуре пересечения??
@neksol1541 Жыл бұрын
большое спасибо, теперь 6 задание не кажется таким сложным)
@НикитаЕрмаков-т1г2 жыл бұрын
Хорош, никогда в тебе не сомневался, объяснил 🔥🔥🔥🔥🔥🔥
@_bongo_cat99658 ай бұрын
Не знаю, упоминалось ли где-то про 5:10, но это не так. Если построить желтую фигуру, то она все равно будет выдавать тот ответ. Насколько я понял, если в item у нас есть 6 - это означает, что мы на границе фигуры, и только из-за len(item) == 1 ваша программа работает. P.s не отсекайте эту 6,и получите программу, которая считает еще точки по краям
@GeyOrgi9 ай бұрын
парни как понятно сколько ставить на for x in range(?) Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд n (где n - целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Направо m (где m - целое число), вызывающая изменение направления движения на m градусов по часовой стрелке. Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз (где k - целое число). Черепахе был дан для исполнения следующий алгоритм: Направо 315 Повтори 7 [Вперёд 16 Направо 45 Вперёд 8 Направо 135]. Определите, сколько точек с целочисленными координатами будут находиться внутри области, которая ограничена линией, заданной алгоритмом. Точки на линии учитывать не следует.
@vasily2dndn8 ай бұрын
Ставь 15000000
@Куепро-ч7э2 жыл бұрын
Спасибо большое. Прям выручил
@Dmitrii-Zhinzhilov2 жыл бұрын
Благодарю! Отличная работа !!! 👍💯 🔥🔥🔥 🧠
@psychoINF Жыл бұрын
Есть задания где нужно учитывать точки на границе, что делать в этом случае? И ещё есть задания где 2 фигуры, как с ними?
@ukrop67318 ай бұрын
братан, твой канал просто лучший, спасибо
@rebellion255 Жыл бұрын
from turtle import * color("black","red") m = 100 begin_fill() speed(0) left(90) for i in range(4): forward(9*m) right(90) forward(7*m) right(90) end_fill() canvas = getcanvas() ccount = 0 for x in range(-120*m, 120*m, m): for y in range(-120*m, 120*m, m): item = canvas.find_overlapping(x,y,x,y) if len(item)==1 and item == 0: ccount = ccount + 1 print(ccount) done() exit() В чем может быть проблема?
@chlen_tvoi Жыл бұрын
Проблема почти в самом конце. В строке if len(item)==1....
@chlen_tvoi Жыл бұрын
if len(item)==1 and item[0]==5: (вот так должно быть) или так if len(item)>=1: (если нужно посчитать точки еще и на контуре фигуры )
@rebellion255 Жыл бұрын
@@chlen_tvoi Все равно в консоли выводится 0
@chlen_tvoi Жыл бұрын
@@rebellion255 Скинь условие задачи если есть
@rebellion255 Жыл бұрын
@@chlen_tvoi Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд n (где n - целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова, и Направо m (где m - целое число), вызывающая изменение направления движения на m градусов по часовой стрелке. Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз. Черепахе был дан для исполнения следующий алгоритм: Повтори 4 [Вперёд 9 Направо 90 Вперёд 7 Направо 90] Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии учитывать не следует.
@alexbelyakov88458 күн бұрын
Направо 135 Повтори 25 [Вперёд 250 Направо 90] Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии не следует учитывать.
@что-ф3п8 ай бұрын
Как насчет того, чтобы треугольник обозначить через три прямые и прогой проверять удовлетворяет ли точка трем неравенствам. Только что попробовал и этот способ очень простой по крайней мере если с профилем у вас хорошо и написать уравнение прямой не вызывает трудностей, первая прямая x=0, вторая y = 111-tg30x, третья y=tg30x k = 0 for x in range(120): for y in range(120): if x>0 and ytg30x k +=1 print(k) Ответ 5280 и париться над тем, какая точка принадлежит, а какая нет, не нужно
@zombikiller2017 ай бұрын
как насчет посрать верх ногами
@AndrewPetrov-ri7 ай бұрын
Не получится так просто сделать, если фигура из себя представляет невыпуклый многоугольник.
@Random_Thought_Generator Жыл бұрын
Спасибо! Прога работает как часы, осталось только её не забыть
@voice_power_yt Жыл бұрын
можно распечатать или написать на тетрадном листе и с собой на экзамен взять, я в принципе так русский написал и матешу
@vasily2dndn10 ай бұрын
@@voice_power_yt и потом в армейке Eifersucht сделать
@sunny_reflection6 ай бұрын
@@voice_power_yt так это шпора и лишний нервяк
@voice_power_yt6 ай бұрын
@@sunny_reflection скажу честно, это ни капли не лишний нервяк, нам сами учителя говорили, чтобы мы шпоры с собой взяли. У меня вообще шпоры были размером с лист А4 (в принципе я и писал всё на этих листах) и просто сворачивал лист до размера носового плотного плотка и ложил туда же и брал с собой на ЕГЭ. Спокойно сдал все три экзамена. Сейчас я понятное дело уже учусь в университете и заканчиваю 1 курс
@skinlink4224 Жыл бұрын
Здравствуйте. Возникла проблема с 6 заданием. Пример из демоверсии ФИПИ 2023 года. Черепахе был дан для исполнения следующий алгоритм: Повтори 2 [Вперёд 10 Направо 90 Вперёд 20 Направо 90] Поднять хвост Вперёд 3 Направо 90 Вперёд 5 Налево 90 Опустить хвост Повтори 2 [Вперёд 70 Направо 90 Вперёд 80 Направо 90] Определите, сколько точек с целочисленными координатами будут находиться внутри пересечения фигур, ограниченных заданными алгоритмом линиями, ВКЛЮЧАЯ точки на границах этого пересечения. from turtle import * color('black', 'red') m = 100 speed(1000) begin_fill() left(90) for i in range(2): forward(10*m) right(90) forward(20*m) right(90) pu() forward(3*m) right(90) forward(5*m) left(90) pd() for i in range(2): forward(70*m) right(90) forward(80*m) right(90) end_fill() canvas = getcanvas() cnt = 0 for y in range(-100*m, 100*m, m): for x in range(-100*m, 100*m, m): item = canvas.find_overlapping(x, y, x, y) if len(item) == 1: # and item[0] == 5: cnt += 1 print(cnt) done() exit() У меня получается 5521, в ответе 128
@inf99ballov Жыл бұрын
тут нужно сначала понять что за область будет получаться при пересечении фигур, а потом уже построить ее в программу: это будет прямоугольник 7 на 15: from turtle import * color('black', 'red') m = 100 speed(1000) begin_fill() left(90) for i in range(2): forward(7*m) right(90) forward(15*m) right(90) end_fill() canvas = getcanvas() cnt = 0 for y in range(-100*m, 100*m, m): for x in range(-100*m, 100*m, m): item = canvas.find_overlapping(x, y, x, y) if len(item) >= 1: cnt += 1 print(cnt) done() exit() Ответ 128
@skinlink4224 Жыл бұрын
@@inf99ballov Спасибо большое, понял, просто невнимательно читал условие)
@artzef Жыл бұрын
@@inf99ballov как получить 7 и 15?
@inf99ballov Жыл бұрын
@@artzef построить эту фигуру по командам в кумире например или на листочке нарисовать
@HPplay1802 Жыл бұрын
Оригинально поставить корги на фон
@br1se Жыл бұрын
А что делать в заданиях с дугами? Мне вот попалась в варианте дуга, не знаю что делать
@ksulive35102 жыл бұрын
Данил, спасибо огромное👍💥💥💥ты лучший!
@Ринат-в1д2 жыл бұрын
Здравствуйте, решал задача и по условию надо найти все точки и внутри фигуры , и на линии: Повтори 5 [Вперёд 7 Направо 90 Вперёд 4 Направо 90] Определите количество точек с целочисленными координатами, лежащих внутри или на границе области, которую ограничивает заданная алгоритмом линия. Мой код: from turtle import * color('black','red') m=100 begin_fill() left(90) for i in range(2): forward(7*m) right(90) forward(4*m) right(90) end_fill() canvas=getcanvas() c=0 for x in range(-100*m,100*m,m): for y in range(-100 * m, 100 * m, m): item=canvas.find_overlapping(x,y,x,y) if len(item)==1 and item[0]==5 : c+=1 print(c) done() exit() Выводит 18, должно быть 40. Буду благодарен за помощь
@inf99ballov2 жыл бұрын
легче легкого, дружище) Чтобы считать точки на границе фигуры достаточно условие в if сделать len(item)>=1 from turtle import * color('black','red') m=100 speed(1000) begin_fill() left(90) for i in range(2): forward(7*m) right(90) forward(4*m) right(90) end_fill() canvas=getcanvas() c=0 for x in range(-100*m,100*m,m): for y in range(-100*m, 100*m, m): item=canvas.find_overlapping(x,y,x,y) if len(item)>=1: c+=1 print(c) done() exit()
@DEMON-eh1sp Жыл бұрын
@@inf99ballov А ПОЧЕМУ 2 А НЕ 4 for i in range(2):
@stasyabashkova6790 Жыл бұрын
@@inf99ballov Спасибо, думала всё, тупик)
@samuraiFinty7 ай бұрын
А что надо изучать для этой программы?
@МихаилЛепетков-щ9м11 ай бұрын
from turtle import * color("black", "red") m = 50 begin_fill() left(45) for i in range(4): forward(8*m) right(135) forward(9*m) right(45) speed(100) end_fill() canvas = getcanvas() cnt = 0 for y in range(-100*m, 100*m, m): for x in range(-100 * m, 100 * m, m): item = canvas.find_overlapping(x, y, x, y) if len(item) == 1 and item[0] == 5: cnt += 1 print(cnt) done() exit() Какая ошибка тут и почему при выполнение программы не происходит закраска фигуры?
@crasava27669 ай бұрын
Фигура закрашивается, но выводится 0 это значит что заливка была сделана неправильно , чтобы это исправить в for i in range(4) 2 надо поставить, тогда выведет ответ 40. Надо ставить 2, так как данная программа нарисует фигуру за два цикла.
@shanydess10 ай бұрын
Используйте в самом начале tracer(0) - это функция завершит работу черепахи сразу без ожидания
@Gandaruxa9 ай бұрын
может ответ неправильно выдать
@Gandaruxa9 ай бұрын
лучше speed(0)
@Хутава2.0 Жыл бұрын
from turtle import * color("blak", "red") m = 100 begin_fill() left(90) for i in range(3): forward(111 * m) right(120) end_fill() canvas = getcanvas() cnt = 0 for x in range(-120 * m, 120 * m, m): for y in range(-120 * m, 120 * m, m): item = canvas.find_overlapping(x, y, x, y) if len(item) == 1 and item[0] == 5: cnt += 1 print(cnt) done() exit() питон выдает ошибку, что я не так написал?
@inf99ballov Жыл бұрын
blak а надо black
@часовщик-ю8ш2 жыл бұрын
k=0 for x in range(1,14): for y in range(1,14): if -x/(3**0.5)+14>y>x/(3**0.5): k+=1 print(k) 14 - сторона треугольника вариант 10 6 задание ответ 78 сразу выходит Решу ЕГЭ через графики ...ставишь вместо 14 любое число...
@tatarskiy_ejik68362 жыл бұрын
работает онли на треугольник
@shadowdragon51852 жыл бұрын
@@tatarskiy_ejik6836 это дело можно поместить в функцию и передать параметром количество углов (Те "3" Это ведь количество углов? )
@tatarskiy_ejik68362 жыл бұрын
@@shadowdragon5185 не ко мне вопрос
@shadowdragon51852 жыл бұрын
@@tatarskiy_ejik6836 по коду это и не было вопросом. Вопрос только с этой цифрой 3
@the_byte. Жыл бұрын
@@shadowdragon5185 нет, 3**0.5 это корень из трех
@DJBraT100 Жыл бұрын
Интересно если я color не прописываю и все заливается черным цветом, то программа все равно работает не взирая на item[0]==5 как это объяснить?
@zombikiller2017 ай бұрын
потому что чел в видео не понимает как она работает, а просто скопипастил код и повторил объяснения :)
@олег-и7я6з2 жыл бұрын
(№ 5600) (А. Минак) Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси абсцисс, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует три команды: Вперёд n (где n - целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова, Направо m (где m - целое число), вызывающая изменение направления движения на m градусов по часовой стрелке, и Налево m (где m - целое число), вызывающая изменение направления движения на m градусов против часовой стрелки. Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз. Черепахе был дан для исполнения следующий алгоритм: Повтори 40 [Налево 45 Вперёд 400 Направо 90] Определите, сколько точек с целыми положительными координатами (x, y) будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии учитывать не следует. Что я делаю не так? from turtle import * color("black", "red") speed(1000) m=100 begin_fill() for i in range(8): left(45) forward(400*m) right(90) end_fill() canvas=getcanvas() cnt=0 for x in range(1*m,1000*m,m): for y in range(1*m,1000*m,m): item=canvas.find_overlapping(x,y,x,y) if len(item)==1 and item[0]==5: cnt+=1 print(cnt) done() exit()
@inf99ballov2 жыл бұрын
Координаты инвертированы, вот так верно: from turtle import * color("black", "red") speed(1000) m=50 begin_fill() left(90) for i in range(8): left(45) forward(400*m) right(90) end_fill() canvas=getcanvas() cnt=0 for x in range(-1200*m,0,m): for y in range(-1200*m,0,m): item=canvas.find_overlapping(x,y,x,y) if len(item)==1 and item[0]==5: cnt+=1 print(cnt) done() exit()
@olgapiv2 жыл бұрын
@@inf99ballov Не могли бы Вы пояснить, почему for x in range(-1200*m,0,m): ? И почему черепаха сначала делает команду left(90), если по условию она смотрит вдоль оси абцисс?
@inf99ballov2 жыл бұрын
@@olgapiv ахх, дико извиняюсь, не увидал, что вдоль оси абсцисс смотрит🥲 Тогда вот так будет выглядеть прога from turtle import * color("black", "red") speed(1000) m=50 begin_fill() for i in range(8): left(45) forward(400*m) right(90) end_fill() canvas=getcanvas() cnt=0 for x in range(0,1200*m,m): for y in range(-1200*m,0,m): item=canvas.find_overlapping(x,y,x,y) if len(item)==1 and item[0]==5: cnt+=1 print(cnt) done() exit() Просто нумерация координат немного по-другому работает в turtle,а не как мы привыкли что первая четверть оба положительные, на словах в комментарии будет сложно объяснить, поэтому рекомендую вам прочитать документацию к модулю
@olgapiv2 жыл бұрын
@@inf99ballov Спасибо, обязательно прочту.
@AspiringToTheBest Жыл бұрын
А где ты рисуешь? Скинь прогу плиз))
@Александр-м4х9ц Жыл бұрын
Спасибо, Даня! Способ крутой👍🏻
@fernandooberhauser9017 Жыл бұрын
Повтори 6 [Вперёд 10 Направо 60] Определите количество точек с целочисленными координатами, лежащих внутри или на границе области, которую ограничивает заданная алгоритмом линия. как посчитать количество точек на линии?
@МихаилМитник Жыл бұрын
ручками
@Дучич-ы6ч Жыл бұрын
@@МихаилМитник там получается 268 точек, а прога выдает 267, посчитаешь ручками?
@Raito_404 Жыл бұрын
а если точки на линии тоже надо считать?
@mr.fridmak_play46802 жыл бұрын
Ага) но формула есть волшебная, что S(площадь) = K(кол-во цел точек внутри) + M/2(кол-во цел точек на сторонах/2) - 1 . М это просто НОД от разницы координат точек)
@mr.fridmak_play46802 жыл бұрын
Работает для любого многоугольника
@jekeha2 жыл бұрын
@@mr.fridmak_play4680 координаты как найти?
@mr.fridmak_play46802 жыл бұрын
@@jekeha ну ты просто представь что из нуля рисуешь, добавляй шаги эти к x и y
@inf99ballov2 жыл бұрын
хороший вариант, формула пика если я не ошибаюсь, но это тоже неавтоматизированный вариант, хотя довольно неплохо ускоряет решение)
@bewin85782 жыл бұрын
Нод?
@AlexAksenenko-rk6mz Жыл бұрын
В второй задаче про квадрат можно посчитать ведь без программы.Нам ведь не важно повернут он или нет,просто перемножаем 25 на 25 и получаем ответ - 625
@inf99ballov Жыл бұрын
Да согласен
@Pup_of_Earth Жыл бұрын
Так нам не над учитывать точки, лежащие на границе
@dronremov5346Ай бұрын
Это подходит, если фигура нарисована под углом 30 градусов, а если 45 или другой угол?
@k_o_l_d_iplay9360 Жыл бұрын
Возник такой вопрос насчёт этой программы: в сборнике Крылова 9-10 вариант даны такие условия: направо 30 повтори 10(9 вариант) и почему черепаха может крутиться на одном месте и выдавать в итоге 0?
@inf99ballov Жыл бұрын
Пришли пожалуйста свой код, наверняка ошибочка там
@k_o_l_d_iplay9360 Жыл бұрын
@@inf99ballov Момент: условие из 9 варианта (Направо 30 [Вперёд 30 Направо 60 Вперёд 30 Направо 120] и условие из 10 варианта: (Повтори 10 [Направо 120 Вперёд 12 Направо 60 Вперёд 12] Код для 10 варианта: from turtle import * color('black', 'red') m = 100 begin_fill() left(90) for i in range(4): right(120) forward(12*m) right(60) forward(12*m) end_fill() canvas = getcanvas() cnt = 0 for x in range(-130*m, 130*m, m): for y in range(-130*m, 130*m, m): item = canvas.find_overlapping(x,y,x,y) if len(item) == 1 and item[0] == 5: cnt += 1 print(cnt) done() ext() Код для 9 варианта: from turtle import * color('black' 'red') m = 100 begin_fill() right(30) left(60) for i in range(4): forward(30*m) right(60) forward(30*m) right(120) end_fill() canvas = getcanvas() cnt = 0 for x in range(-130*m, 130*m, m): for y in range(-130*m, 130*m, m): item = canvas.find_overlapping(x,y,x,y) if len(item) == 1 and item[0] == 5: cnt += 1 print(cnt) done() ext()
@k_o_l_d_iplay9360 Жыл бұрын
@@inf99ballov в ожидании ответа 🙃
@kimine2270 Жыл бұрын
@@k_o_l_d_iplay9360 в коде для 9в. у тебя в color нет запятой между цветами, left должно быть 90, а не 60, в for достаточно range(2) для полной фигуры, так как с 4 у тебя черепашка дважды рисует фигуру, ещё в конце ext() вместо exit() написано. ответ вроде 750. в 10в. также вместо range(4) нужно range(2) и вместо ext() нужно exit(), но второе особо на программу не влияет. ответ 120 вроде. п.с. и ещё это не обязательно, но рекомендую добавить speed(1000), чтобы быстрее работало
@k_o_l_d_iplay9360 Жыл бұрын
@@kimine2270 спасибо за отклик, попробую сделать 🤝
@c0ld_ddd Жыл бұрын
спасибо, хорошее объяснение!
@arslansimchit1176 Жыл бұрын
огромное спасибо за универсальное решение
@Itachi143Uchiha4 ай бұрын
а если фигур несколько и нужно посчитать точки пересечения или же точки, которые не пересекаются
@chlen_tvoi Жыл бұрын
ПОДСКАЖИТЕ ПОЖАЛУЙСТА КАК МОЖНО ОПРЕДЕЛИТЬ ОБЛАСТЬ ПЕРЕСЕЧЕНИЯ ФИГУР Черепахе был дан для исполнения следующий алгоритм: Повтори 3 [Вперёд 10 Направо 120] Поднять хвост Вперёд 10 Направо 90 Вперёд 3 Опустить хвост Повтори 4 [Вперёд 10 Направо 90] Определите, сколько точек с целочисленными координатами будут находиться внутри пересечения фигур, ограниченных заданными алгоритмом линиями, не включая точки на границах этого пересечения. мой код: from turtle import * color ('black','yellow') m=15 speed(1) begin_fill() left(90) for z in range (3): forward (10*m) right(120) pu() forward(10*m) right (90) forward (3*m) pd() for s in range (4): forward (10*m) right (90) end_fill() canvas=getcanvas() cnt=0 for y in range (-200*m,200*m,m): for x in range (-200*m,200*m,m): item=canvas.find_overlapping(x,y,x,y) if len(item)==1 and item[0]==5: cnt+=1 print (cnt) done () exit ()
@inf99ballov Жыл бұрын
я такие задачи решаю по отдельности: в кумире или на листочке сначала строишь область пересечения а потом уже задаешь полученную фигуры в прогу и считаешь точки
@CHELSEAprod8 ай бұрын
А что делать в случае, когда можно считать точки на линии? Какой код у черного цвета?
@loco93128 ай бұрын
пни как ответят, я придумал величивать шаг форвард на 2 еденицы тогда будет считать правильно
@Ilya-ju1jg8 ай бұрын
вместо len(item) == 1 and item[0] == 5: надо писать len(item) >= 1: и все
@Ilya-ju1jg8 ай бұрын
@@loco9312 пинаю, на 2 единицы увеличивать нельзя, не правильно это
@Ilya-ju1jg8 ай бұрын
еще лучше придумал: if len(item)>=1 and (canvas.itemcget(item[0], 'fill') == 'red' or canvas.itemcget(item[0], 'fill') == 'black'):
@capybarar Жыл бұрын
Привет, возник вопрос с задачами с дугами. Пример из сборника Крылова 2023 16 вариант: Направо 180 Вперед 3 Направо 90 Вперед 48 Направо 90 Вперед 3 Повтори 6 [Дуга 4, 4, 0, 180] . Точки на линии не учитываем. Найти количество точек внутри фигуры. Мой код: from turtle import * color("black","red") m =1000 speed(1000) begin_fill() left(90) right(180) forward(3*m) right(90) forward(48*m) right(90) forward(3*m) for i in range(6): circle(-4*m,180) right(180) end_fill() canvas = getcanvas() cnt = 0 for x in range(-500*m,500*m,m): for y in range(-500*m,500*m,m): item = canvas.find_overlapping(x,y,x,y) if len(item) == 1 and item[0] == 5: cnt += 1 print(cnt) done() exit() Мой код выдает: 250 Правильный ответ: 136 Что не так с кодом? Заранее благодарен за ответ
@inf99ballov Жыл бұрын
проверил ручным способом - тоже получил 250, вывод - код верный, а вот в сборнике очередная ошибка
@artzef Жыл бұрын
@@inf99ballov почему в 14 строке -4*m?
@inf99ballov Жыл бұрын
@@artzef потому что нам нужно именно такое направление радиуса, попробуй написать без минуса и увидишь в чем отличие
@artzef Жыл бұрын
На листочке всё получилось, но я никак не пойму как в кумире и пайтоне изобразить такую фигуру, какие команды(
@nastyar012 жыл бұрын
Даня лучший!
@BratIShkao Жыл бұрын
Классная программа, вот только вопрос есть, как ей считать задания, где нужно поднять хвост черепахи, сделать что-то, опустить хвост и снова что-то сделать? это возможно?
@artzef Жыл бұрын
Направо 300, повтори 6 раз, [вперед 5 направо 120 вперед 5 направо 330] from turtle import* color ("black", "red") m=100 begin fill() right (300) for i in range (4): forward (10) right (120) forward (10) right (330) end fill () canvas=getcanvas () cnt=0 for x in range (-1000*m, 1000*m, m): for y in range (-1000*m, 1000*m, m): item=canvas.find_overlapping (x, y, x, y) if len(item)==1 and item[0]==5: cnt+ 1 print (cnt) done () exit() Получается 0, а должно 269
@inf99ballov Жыл бұрын
а почему у тебя вместо знаков равенства стоят минусы? и пропущены некоторые знаки умножения?
@artzef Жыл бұрын
@@inf99ballov ой, я просто копировал с фотографии и текст распознался не так как надо. Так то у меня всё как в шаблоне, но ответ 0
@svatg Жыл бұрын
Можно ли как-то считать точки, которые на линии тоже учитываются???????❤❤❤
@inf99ballov Жыл бұрын
конечно, просто в условном операторе пропиши if len(item) >= 1: и готово
@МихаилПавлов-я5п Жыл бұрын
@@inf99ballov как len(item) может быть больше единицы, Если пересечений точки и точки больше 1 быть никак не может? Разве в таком случае не нужно убирать второе условие, которое проверяет цвет завивки?
@inf99ballov Жыл бұрын
@@МихаилПавлов-я5п Он ищет пересечения всех объектов, прямых, заливочной части и тд. и как понятно по условию, наша точка пересечется и с заливкой и с черной границей поверх нее, поэтому длина множества будет больше 1
@МихаилПавлов-я5п Жыл бұрын
@@inf99ballov то есть при таком построении заливка так же накладывается на (или под, неважно) линию?
@inf99ballov Жыл бұрын
@@МихаилПавлов-я5п да, там все по хитрому
@qwertysalo8665 Жыл бұрын
А вы не знаете как посчитать этот идентификатор объекта, проведя некоторое количество тестов я так и не выявил закономерности в идентификаторах?
@Gandaruxa9 ай бұрын
from turtle import * color("black", "red") m = 100 begin_fill() left(90) for i in range(2): forward(10*m) right(90) forward(18*m) right(90) penup() forward(5*m) right(90) forward(7*m) left(90) pendown() for i in range(2): forward(10*m) right(90) forward(7*m) right(90) end_fill() canvas = getcanvas() cnt = 0 for x in range(-120*m,120*m, m): for y in range(-120*m,120*m, m): item = canvas.find_overlapping(x, y, x, y) if len(item) >= 1 and item[0] == 5: cnt += 1 print (cnt) done() exit() привет,скорее всего ты не ответишь,но не знаешь почему задача выдает неправильный ответ,нужно найти точки внутри объединения фигур включая точки на линиях должно быть 249 у меня 196 или 197
@blobick22649 ай бұрын
Вопрос, а что если в задании просят учитывать точки на линиях, как посчитать их количество в таком случае?
@Олег-т3н9б Жыл бұрын
Интересно, как сделать, чтобы после рисования ёлки, секунд через 5 графическое окно с ёлкой закрылось или вовсе питон закрыл сам себя?
@ИринаЧупракова-м9ф Жыл бұрын
При повороте на 45 градусов программа считает точки некорректно, кто-то сталкивался с такой проблемой?
@inf99ballov Жыл бұрын
Отправь пожалуйста задачу и свой код. Наверняка ошибка в чем-то другом
@ИринаЧупракова-м9ф Жыл бұрын
@@inf99ballov Голова направлена вдоль положительного направления оси ординат. Алгоритм: Вперед 100 Направо 90 Вперед 100 Направо 45 Опусти Повтори 10 [ Вперед 30 Направо 90]. Ответ 882, получается 924. Эту часть пропускаю (Вперед 100 Направо 90 Вперед 100 ), т.к если сделать left(90) forward(100*m) right (90) forward(100*m) черепашка все равно будет стоять в положении Направо 90. from turtle import * color ("black", "red") m = 100 tracer(0) begin_fill() right(45) for i in range(4): forward(30*m) right(90) end_fill() canvas = getcanvas() count = 0 for y in range(-100*m, 100*m, m): for x in range(-100*m, 100*m, m): item = canvas.find_overlapping(x,y,x,y) if len(item) == 1 and item[0] == 5: count +=1 print(count) update() done() exit()
@inf99ballov Жыл бұрын
@@ИринаЧупракова-м9ф забавно, я нашел ошибку в операции tracer(0)! дело в том, что если не отслеживать путь черепашки, то она не будет рисовать линию черного цвета, чтобы эти точки мы не считали раз они лежат на границе фигуры, поэтому заменяем строчку tracer(0) на speed(1000) и все окей from turtle import * color ("black", "red") m = 100 speed(1000) begin_fill() right(45) for i in range(4): forward(30*m) right(90) end_fill() canvas = getcanvas() count = 0 for y in range(-100*m, 100*m, m): for x in range(-100*m, 100*m, m): item = canvas.find_overlapping(x,y,x,y) if len(item) == 1 and item[0] == 5: count +=1 print(count) done() exit()
@ИринаЧупракова-м9ф Жыл бұрын
@@inf99ballov Спасибо!
@sefka_of5 ай бұрын
привет, а как решать таким шаблоном задачи где пересечение фигур?
@chensarmletom Жыл бұрын
Большое спасибо, очень полезное и информативное видео
@user-ee5jz3pq7d Жыл бұрын
Из-за чего код может не работать? from turtle import * color("black", "red") m = 100 tracer(0) begin_fill() left(90) forward(10*m) right(120) forward(10*m) right(120) forward(10*m) right(120) end_fill() cnt = 0 canvas = getcanvas() for y in range(-20*m, 20*m, 1*m): for x in range(-20*m, -20*m, 1*m): abc = canvas.find_overlapping(x,y,x,y) print(x,y) if len(abc) == 1 and abc[0] == 5: cnt += 1 print(cnt) done() exit()
@inf99ballov Жыл бұрын
у тебя во втором форе стоит диапазон от -20 до -20 ошибка поставь от -20 до +20 и все будет окей
@user-ee5jz3pq7d Жыл бұрын
@@inf99ballov спасибо
@VYTro Жыл бұрын
from turtle import * color("black", "red") m = 100 tracer(0) begin_fill() left(90) forward(10*m) right(120) forward(10*m) right(120) forward(10*m) right(120) end_fill() cnt = 0 canvas = getcanvas() for y in range(-20*m, 20*m, 1*m): for x in range(-20*m, 20*m, 1*m): # исправлено здесь abc = canvas.find_overlapping(x, y, x, y) if len(abc) == 1 and abc[0] == 5: cnt += 1 print(cnt) done()
@samuraiFinty6 ай бұрын
А какой номер у черного цвета??
@ВладАдеев-н1с2 жыл бұрын
А что делать если просят посчитать и точки лежащие на линии?
@inf99ballov2 жыл бұрын
Почитай в комментах других ребят, уже задавали такой вопрос))
@k_o_l_d_iplay9360 Жыл бұрын
А эта программа будет действовать только на треугольники или на все фигуры?
@inf99ballov Жыл бұрын
на все фигуры
@k_o_l_d_iplay9360 Жыл бұрын
@@inf99ballov понял, спасибо за уточнение. Хорошечная программа ✌️🤝
@ГеоргийКислов-р2ю2 жыл бұрын
приветствую, вопрос всё ещё по решению через turtle(старый комментарий так и не получил ответа, плюс инфа новая есть). Есть вопрос, почему мы проверяем точку через число 5? Повторюсь, мы проверяем не цвет объекта, так как при изменении фона программа всё ещё находит нужные точки, значит мы считаем какой то другой параметр. И я заметил странность: если мы начнём выводить точки, которые входят в фигуру, мы будем получать кортежи, причём их длина будет чаще всего 1-2 элемента. Но первая же точка имеет 5 элементов! Есть конечно идея, что каждая точка возвращает кол-во объектов, которые проходят через неё, но тогда почему один объект называется 5,4, и т.д., и почему в 1 точке целых 5 объектов, хотя мы используем только линии и площадь? Было бы неплохо, что бы вы прояснили этот момент. Заранее спасибо
@inf99ballov2 жыл бұрын
Георгий, здравствуйте! я уже отвечал на этот вопрос кому-то в комментариях: список item наполняется не кодами цветов, а кодами самих элементов пересечения, поэтому цвета можно менять, в видео я этого еще не знал) В документации сказано так: find_overlapping ( x1 , y1 , x2 , y2 ) - Возвращает каждый элемент, перекрывающий прямоугольную область, заданную x1 , y1 , x2 и y2 . должен быть верхний левый угол области и нижний правый угол. Элементы возвращаются в порядке укладки, начиная с самого нижнего элемента.(x1, y1)(x2, y2)
@wolk463 Жыл бұрын
Спасибо большое, реально полезно
@mr.bigbro41996 ай бұрын
нужно было еще дописать внчале tracer(0), чтобы не ждать отрисовки
@KiriArt1 Жыл бұрын
а что делать если в задаче цапля? Цапле был дан для исполнения следующий алгоритм: Повтори 5 [Дуга 5, 0, 10, 180 Дуга 10, 0, 0, 180 Дуга 5, -5, -5, 180]. какие нужно использовать команды?
@АлексейПасечников-ш8б11 ай бұрын
А для того чтобы посчитать точки на обводке есть код а желательно видео?
@zombikiller2017 ай бұрын
Зачем возвращать холст tkinter?
@aldspsa Жыл бұрын
Повтори 4 [Вперёд 9 Направо 90 Вперёд 7 Направо 90] Почему тут, если range(4) ставлю, то выдает ноль, а если range(2) то верное число? for i in range(4): forward(9*m) right(90) forward(7 * m) right(90)
@inf99ballov Жыл бұрын
потому что это прямоугольник и за один проход ты рисуешь сразу две его стороны. Значит для замыкания фигуры нужно всего 2 повторения, а не 4 как в условии
@ТихонПо8 ай бұрын
код хороший работает почти всегда, он в сборнике Крылова 2024 года в 15 варианте фигура очень странная, я ,вроде, все учел , но ответ прога выдаёт не верный.
@exald40111 ай бұрын
Спасибо большое!
@Zlexe Жыл бұрын
А что если взять 54 номер задания 6 у Полякова, шдн используется чертёжник? Попробуй его решить таким же способом, потому что там ответ получается 62305 точек Чертёжнику был дан для исполнения следующий алгоритм: Повтори 10 раз Сместиться на (200, 100) Сместиться на (-50, -150) Сместиться на (-150, 50) конец Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии следует учитывать.
@abracadabra182 жыл бұрын
Что не так с кодом,выводит 0,Крылов 2023,4 вариант from turtle import * color("black", "red") m=100 begin_fill() right(30) for i in range(4): forward(20*m) right(90) forward(30*m) right(90) end_fill() canvas=getcanvas() cnt=0 for y in range(-100*m, 100*m, m): for x in range(-100*m, 100*m, m): item=canvas.find_overlapping(x, y, x, y) if len(item)==1 and item[0]==5: cnt+=1 print(cnt) done() exit()
@rerediska62682 жыл бұрын
for i in range(4): forward(20*m) right(90) forward(30*m) right(90) В этом месте необходимо брать такое количество повторений , чтобы фигура замыкалась лишь один раз, точка начала и конца цикла должны совпадать(было 4, а нужно брать 2).Получается ответ - 598
@abracadabra182 жыл бұрын
@@rerediska6268 for i in range(2)? Если да, то я пробовал вышло 600, а правильный ответ 588
@rerediska62682 жыл бұрын
@@abracadabra18 у меня получается 598
@rerediska62682 жыл бұрын
@@abracadabra18 from turtle import * color("black", "red") m=100 begin_fill() right(30) for i in range(4): forward(20*m) right(90) forward(30*m) right(90) end_fill() canvas=getcanvas() cnt=0 for y in range(-100*m, 100*m, m): for x in range(-100*m, 100*m, m): item=canvas.find_overlapping(x, y, x, y) if len(item)==1 and item[0]==5: cnt+=1 print(cnt) done() exit() У меня ответ получается 598
@abracadabra182 жыл бұрын
@@rerediska6268 с range(2) выводит 600, у тебя 598, ответ 588.Что-то мы делаем не так в жизни
@men_epto Жыл бұрын
Осталось выучить код перед егэ, спасибо)
@kirilllizunov97512 жыл бұрын
Помогите пж... пишет, что name 'canvas' is not defined Код (вторая задача из ролика): from turtle import * color('black','red') m=100 begin_fill() right(30) for i in range(4): forward(25*m) right(90) end_fill() cnt=0 for y in range(-100*m, 100*m, m): for x in range(-100*m, 100*m, m): item = canvas.find_overlapping(x, y, x, y) if len(item)==1 and item[0]==5: cnt+=1 print(cnt) done() exit() Запускал и в питоне 3.9.6, и в онлайн компиляторе, везде выводит одну и ту же ошибку
@inf99ballov2 жыл бұрын
ты пропустил строчку canvas = getcanvas() вот код: from turtle import * color('black','red') m=100 speed(1000) begin_fill() right(30) for i in range(4): forward(25*m) right(90) end_fill() canvas = getcanvas() cnt=0 for y in range(-100*m, 100*m, m): for x in range(-100*m, 100*m, m): item = canvas.find_overlapping(x, y, x, y) if len(item)==1 and item[0]==5: cnt+=1 print(cnt) done() exit()
@nikzan59182 жыл бұрын
Подскажите, в IDE Pycharm на Mac apple silicon программа не работает, ответ не выводится в консоль даже спустя час. В среде Thonny все работает замечательно. Проблема именно с IDE или с операционкой? Знаю точно, что на ППЭ будут машины с этой средой, не возникут ли подобные проблемы там?
@inf99ballov2 жыл бұрын
вряд ли, я бы рекомендовал еще поразбираться потому что от интерпретатора мало что зависит
@annax3163 Жыл бұрын
Пишите в голеньком IDLE (найти поиском во "все программы")
@tvink845210 ай бұрын
В некоторых заданиях просят поднять хвост, если в кумире это сделать элементарно, то вот как сделать на питоне на видео не показано. Если это возможно сделать, то пожалуйста ответьте мне как.
@АлександрКрекнин-д6щ10 ай бұрын
up()
@vasily2dndn10 ай бұрын
down() - опустить up() - поднять
@kamiloid11 Жыл бұрын
Скажите пожалуйста, вот вы объясняли на 5:20 что красный цвет имеет код "5", а как узнать код черного цвета? И вообще, можете пожалуйста подсказать, где вы взяли информацию об этих кодах
@inf99ballov Жыл бұрын
это не коды цветов, это коды самих пересекающихся элементов ( прямые, отрезки) и они лежат в item, и чтобы области пересекались это множество должно иметь ненулевую длину и соблюдать условие как в видео,( с цветом ошибка, на момент записи видео, я этого еще не знал)
@--6960 Жыл бұрын
привет! очень странно программа зависит от переменной m, если её поменять - получается другой ответ. всегда получается такие значения брать? или это только для вариантов Крылова? =D
@inf99ballov Жыл бұрын
m - масштаб, чем он больше чем точнее рисунок, поэтому ответы и будут разными получается, масштаба в 100 достаточно для всех заданий
@teizi56602 жыл бұрын
предлагаю строить треугольник в 10 раз меньше заданного, то есть если стороны 100, то мы задаем 10 для легкого счета точек внутри фигуры
@inf99ballov2 жыл бұрын
с масштабом 10 тоже можно, но 100 для уверенности)
@Ксю-р6ш2 жыл бұрын
Подскажите пожалуйста зачем мы увеличиваем масштаб?
@inf99ballov2 жыл бұрын
@@Ксю-р6ш уже ответил на такой вопрос)
@Dmitrii-Zhinzhilov2 жыл бұрын
@@inf99ballov c масштабом 10 у меня 6 точек недостаёт !!! так что надо брать 100
@veronikakovalchuk99542 жыл бұрын
Спасибо!
@Sanya_Nub_voin2 жыл бұрын
Кстати, заливка у черепашки адекватная. Если фигура не замкнутая, то черепашка соединит конец и начало фигуры. И даже если там будет 10 повторений, все равно должно работать)
@Raito_4042 жыл бұрын
у меня если повторений больше нужного то показывает кол-во точек 0, так что лучше ставить правильное кол
@ВалерийПерелыгин-ц1п Жыл бұрын
Приветствую! Столкнулся с вот такой задачей, ответ не сходится, должен быть 85. Возможно, ошибка в сборнике? Направо 45 Повтори 9 [Вперёд 9 Направо 90] from turtle import * color('black','red') speed(100) m = 200 begin_fill() right(45) for i in range(9): forward(9*m) right(45) end_fill() canvas = getcanvas() cnt = 0 for y in range(-200*m, 200*m, m): for x in range(-200*m, 200*m, m): item = canvas.find_overlapping(x, y, x, y) if len(item) == 1 and item[0] == 5: cnt += 1 print(cnt) done() exit()
@inf99ballov Жыл бұрын
А можно целиком вопрос, там точки только внутри фигуры считать нужно или на границе тоже? И куда изначально смотрит Черепашка, вдоль оси x или y? Во вторых уже сразу видно опечатку у вас. В условии написано направо 90 а в вашей программе right(45) в цикле
@СергейРуденко-п3д Жыл бұрын
не пойму в чем ошибка, выдает ответ 5190 from turtle import * speed(1000) color("black","red") m=100 begin_fill() left(90) for i in range(3): forward(111*m) right(120) end_fill() canvas=getcanvas() cnt=0 for y in range(-100*m,100*m,m): for x in range(-100*m,100*m,m): item=canvas.find_overlapping(x,y,x,y) if len(item)==1 and item[0]==5: cnt+=1 print(cnt) done() exit()
@inf99ballov Жыл бұрын
перебор маленький ты идешь от -100 до 100, но треугольник рисуешь со стороной 111 поставь в обоих циклах -120 до 120
@kozanuch4405 Жыл бұрын
Ох блин ненавижу что-то заучивать шаблонно, хотелось бы чтоб в школах реально изучали пайтон, а не шаблоны под ЕГЭ. Можете подсказать где можно брать нормальную информацию по пайтону?
@gr4pes805 Жыл бұрын
А что делать, если в задании нужно найти точки не только внутри фигуры, но и те, которые лежат на границе?
@hellegant8067 Жыл бұрын
len(item) >= 1. and item[0] == 5 писать не нужно, ведь теперь нам не важен цвет
@ИринаЕршова-к2д Жыл бұрын
Что за прога, шрифт такой приятный. Или где-то в настройках можно поменять?
@inf99ballov Жыл бұрын
прога Thonny, в настройках меняется тема и шрифт
@ИринаЕршова-к2д Жыл бұрын
@@inf99ballov оооо, спасибо!
@asari6326 Жыл бұрын
Спасибо, бро.
@ta1ron874 Жыл бұрын
привет, у тебя показано как искать в том случае если точки на границе учитывать не стоит, а если их нужно учитывать то как это делать?
@inf99ballov Жыл бұрын
Привет, чекни в комментах ответ пж, его уже задавали часто)
@yellxwdread51202 жыл бұрын
можешь, пожалуйста, подробнее разобрать 14 и 15 строку?
@shadowdragon51852 жыл бұрын
В переменную (или по питонски "объект") "Item" Помещается точка из твоего окна (canvas это полотно на котором всё рисуется) по проверяемым координатам (координаты перебираются в цикле for). Этот метод (find_overlapping) возвращает тебе некий список с несколькими значениями. После чего смотрится количество элементов в этом списке "items" И проверяется находится ли данная перебираемая точка в Красной зоне (конструкция "if" Как раз проверяет два значения друг с другом), если да, то нашли нужную нам точку и счётчик увеличиваем. Проходимся таким же образом по всем остальным точкам и готово, в переменной "cnt" Насчитано нужное количество точек