Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 13.08.2019, 23:49   #1
Икар К
Пользователь
 
Регистрация: 05.11.2018
Сообщений: 17
Репутация: 10
По умолчанию [Pascal ABC.NET] Помогите сделать упругую деформацию бруса.

Есть код, что добавить, чтобы брус изогнулся вот так, под своим весом?
Код:
type tt=record x,y: single end; // 2D координаты точки
var a: array[0..2,-3..3]of tt; // брусок, будет изогнут вокруг точки (0,0)
begin
for var i:=0 to 2 do
for var j:=-3 to 3 do // ровный брусок
begin
a[i,j].x:=j*1.0;
a[i,j].y:=i*1.0;
end;
// здесь код изгиба, под действием собственного веса, концы провисают
// как это записать? 
for var i:=0 to 2 do begin
for var j:=-3 to 3 do
write(a[i,j].x,',',a[i,j].y,';'); 
writeln
end;
end.
Изображения
 
Икар К вне форума   Ответить с цитированием
Старый 14.08.2019, 03:43   #2
Pvt
Новичок
 
Регистрация: 05.08.2019
Сообщений: 0
Репутация: 10
По умолчанию

обращайтесь pvt.marat@yandex.ru
__________________
e-mail: pvt.marat@yandex.ru
Pvt вне форума   Ответить с цитированием
Старый 14.08.2019, 09:07   #3
WorldMaster
Профессионал
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Адрес: Россия, Мурманск
Сообщений: 2,319
Репутация: 705

icq: 359393755
По умолчанию

У вас наверное должны быть материалы по задаче? Или откуда это взялось?
По деформации там более сложные формулы расчета. Силы должны быть указаны которые действуют на края бруса.
__________________
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
Если помог - нажми на весы
WorldMaster вне форума   Ответить с цитированием
Старый 14.08.2019, 13:21   #4
Larboss
Недо
Профессионал
 
Аватар для Larboss
 
Регистрация: 11.08.2011
Адрес: Земля
Сообщений: 1,390
Репутация: 506

icq: 305254104
skype: Larboss7
По умолчанию

Пишите: larbossfreelance@yandex.ru
__________________
С помощью программирования можно разбогатеть и изменить мир к лучшему (с) Бьерн Страуструп
Larboss вне форума   Ответить с цитированием
Старый 14.08.2019, 16:56   #5
Икар К
Пользователь
 
Регистрация: 05.11.2018
Сообщений: 17
Репутация: 10
По умолчанию

Задача моя собственная, я сам придумал, и как смог сформулировал
Икар К вне форума   Ответить с цитированием
Старый 14.08.2019, 17:06   #6
WorldMaster
Профессионал
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Адрес: Россия, Мурманск
Сообщений: 2,319
Репутация: 705

icq: 359393755
По умолчанию

Цитата:
Сообщение от Икар К Посмотреть сообщение
Задача моя собственная, я сам придумал, и как смог сформулировал
Ну в любом случае конкретика нужна. Какой материал бруска? концы свободные как я понимаю? Это же целая физическая модель. В 2 строчки врядли чтото получится изобразить.

А бюджет какой предлагаете?
__________________
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
Если помог - нажми на весы
WorldMaster вне форума   Ответить с цитированием
Старый 14.08.2019, 17:12   #7
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 18,998
Репутация: 6725
По умолчанию

Та ТС небось просто нарисовать сектор круга ограниченный кругом меньшего диаметра без всякого сопромата)
__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума   Ответить с цитированием
Старый 14.08.2019, 17:15   #8
WorldMaster
Профессионал
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Адрес: Россия, Мурманск
Сообщений: 2,319
Репутация: 705

icq: 359393755
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Та ТС небось просто нарисовать сектор круга ограниченный кругом меньшего диаметра без всякого сопромата)
Да я тоже так подумал, но вот тут то вроде как очень внятно указано:
Цитата:
// здесь код изгиба, под действием собственного веса, концы провисают
Ну если совсем просто то можно поворачивать каждую точку из центра на определенный угол. Для максимально удаленной точки угол константа. Для остальных брать пропорционально длине. Как то должен изогнуть.
__________________
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
Если помог - нажми на весы

Последний раз редактировалось WorldMaster; 14.08.2019 в 17:36.
WorldMaster вне форума   Ответить с цитированием
Старый 14.08.2019, 17:36   #9
Pvt
Новичок
 
Регистрация: 05.08.2019
Сообщений: 0
Репутация: 10
По умолчанию

Цитата:
Сообщение от Икар К Посмотреть сообщение
я сам придумал
длину, массу, профиль, предел упругости знать не обязательно?
__________________
e-mail: pvt.marat@yandex.ru
Pvt вне форума   Ответить с цитированием
Старый 15.08.2019, 11:30   #10
WorldMaster
Профессионал
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Адрес: Россия, Мурманск
Сообщений: 2,319
Репутация: 705

icq: 359393755
По умолчанию

Короче если совсем все просто то вот как то так наверное.

Код:
Image frame = new Bitmap(500, 500);
            int step = 7;
            int xoff = 10;
            int yoff = 10;

            Point center = new Point(5, 0);
            using (Graphics graph = Graphics.FromImage(frame))
            {
                for (int i = 0; i < 11; i++)
                    for (int j = 0; j < 4; j++)
                    {
                        int x = 100 + i * xoff;
                        int y = 0 + j * yoff;

                        double dst = distance(new Point(i, j), center);
                        if (dst != 0)
                        {
                            double dstX = Math.Abs(i - center.X);
                            double fraqX = 0.01;
                            double fraqY = 0.2;

                            if (i > center.X) x += (int)((fraqX * dst * dst * xoff));
                            else if (i < center.X) x -= (int)((fraqX * dst * dst * xoff));
                            y += (int)(0.5 * (fraqY * dst * dst * xoff));
                        }

                        Rectangle rect = new Rectangle(x, y, step, step);
                        graph.FillEllipse(Brushes.Pink, rect);
                        graph.DrawEllipse(Pens.Black, rect);
                    }
            }
            pictureBox1.Image = frame;
Поиграть с коэффициентами чтобы более красиво изгибалось.

ЗЫ. на паскаль уже лень переводить ))
Изображения
 
__________________
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
Если помог - нажми на весы

Последний раз редактировалось WorldMaster; 15.08.2019 в 11:43.
WorldMaster вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите сделать все это в Pascal Kazino96 Помощь студентам 5 12.04.2015 14:39
Задача по PASCAl. Помогите сделать. Waia Помощь студентам 1 21.12.2008 19:51
Задача по PASCAl. Помогите сделать. Waia Помощь студентам 3 03.12.2008 19:47
Задача по PASCAl. Помогите сделать. Waia Помощь студентам 3 25.11.2008 10:33


01:06.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.