Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2021, 01:50   #1
Desgand
Новичок
Джуниор
 
Регистрация: 26.06.2021
Сообщений: 1
По умолчанию Нужна программа

Доброго времени суток!

Нужна программа, которая будет двигать точку на плоскости.

Задаём N точек произвольно расположенных на плоскости, допустим ABC, далее задаём ещё одну точку M, которую и нужно двигать. А двигать ее нужно по направлению к одной из вершин на половину расстояния от точки до вершины. К какой вершине двигать определяем броском кубика.

Действие должно повторяться много-много раз. На выходи интересует получившийся рисунок.

Буду благодарен за код или за подсказки как реализовать, но лучше код т.к iq как у хлебушка��

Последний раз редактировалось Desgand; 26.06.2021 в 01:54.
Desgand вне форума Ответить с цитированием
Старый 26.06.2021, 03:00   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

А что не получается? На дельфи буквально 80 строк.
Изображения
Тип файла: png 1.png (48.2 Кб, 4 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 26.06.2021, 09:46   #3
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

BDA, у вас красивый фрактал, а у меня получается всегда равномерно закрашенный многоугольник
При пяти точках типа такого:


Код на Visual Basic 6:
Код:
Private Sub Command1_Click()
' Координаты случайной точки M
 Mx = Int(Rnd() * 600)
 My = Int(Rnd() * 600)
 ' Координаты случайных 5 вершин
 Dim Ax(4)
 Dim AY(4)
 For i = 0 To 4
   Ax(i) = Int(Rnd() * 600)
   AY(i) = Int(Rnd() * 600)
 Next
 'Повторяем много-много раз (100 тысяч)
 For i = 1 To 100000
      n = Int(Rnd() * 4) + 1 ' случайный выбор вершины
      X = (Ax(n) + Mx) / 2   ' вычисляем середину координаты x
      Y = (AY(n) + My) / 2   ' вычисляем середину координаты y
     ' Line (Mx, My)-(X, Y), RGB(Rnd() * 256, Rnd() * 256, Rnd() * 256) ' рисуем линию  до середины расстояния
      PSet (x, y)                                                 ' Рисовать надо точку, а не линию!
      Mx = X: My = Y ' новые кординаты для точки M
 Next
End Sub

Последний раз редактировалось kvitaliy; 26.06.2021 в 20:54. Причина: Исправил код
kvitaliy вне форума Ответить с цитированием
Старый 26.06.2021, 13:49   #4
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 954
По умолчанию

Подобные программы в теме моей подписи
Массив координат точек обходят циклы

Язык высочайшего уровня qb64 qbasic

Вместо случайного выбора: сейчас по порядку
и как переделать на случайные см в конце
Код:
' dato4ki.bas

n = 5: s = 100: DIM x(n,s),y(n,s)
SCREEN 12: RANDOMIZE TIMER
FOR i = 1 TO n: x(i,1) = 10 + INT(RND * 330): y(i,1) = 10 + INT(RND * 330)
    CIRCLE (x(i,1),y(i,1)),7,i: CIRCLE (x(1,1),y(1,1)),5,1
    FOR j = 1 TO s: x(i,j) = x(i,1): y(i,j) = y(i,1)
NEXT: NEXT:

FOR j = 2 TO s: FOR k = 2 TO n
        x(1,j) = (x(1,j-1) + x(k,j-1)) / 2
        y(1,j) = (y(1,j-1) + y(k,j-1)) / 2
        CIRCLE (x(1,j),y(1,j)),3,k:
        LINE (x(1,j),y(1,j))-(x(1,j-1),y(1,j-1)),k
        x(1,j-1) = x(1,j)
        y(1,j-1) = y(1,j) ' : SLEEP 1:
NEXT: NEXT: END


Никакой фрактал не получается

Переделать на случайные номера: вместо FOR k = 2 TO n и NEXT
k = 1 + INT(RND * n) ' расчёт случайного номера через RND учтя начало с №2

Результат: много линий внутри области ограниченной точками

Красивейшие картинки если точек 12
и если включить SLEEP 1 внутри будет пауза между линиями 1 секунда
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 26.06.2021 в 15:59.
сфинкс вне форума Ответить с цитированием
Старый 26.06.2021, 18:19   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

kvitaliy, фрактал получается, если рисовать только точки по условию, а не линии между точками. И не всегда фрактал "красиво" рисуется - из трех точек всегда треугольник Серпинского получается, а вот с другим набором точек иногда и не видно фрактальной структуры.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 26.06.2021, 20:51   #6
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
если рисовать только точки по условию, а не линии между точками.
Точно! Получилось
kvitaliy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна программа premitiv Помощь студентам 1 06.01.2017 15:51
нужна программа QControl программа для внутрилабораторного контроля качества Версия 5.5. миньен Софт 7 02.03.2014 00:28
нужна программа toper09 Общие вопросы C/C++ 0 01.05.2010 12:00