Последние темы
Вход
Новая точка пополнения вебмани
Чт Мар 04, 2010 12:13 am автор Admin
В Давыдово наконец-то появилось место, где можно положить деньги на кошелек вебмани.
Это Торговый Цент отдел продажи карт оплат телефонов. С вашей суммы берут 5-ть проценто магазину и
процента 2-а за перевод в системе …
[ Полное чтение ]
Это Торговый Цент отдел продажи карт оплат телефонов. С вашей суммы берут 5-ть проценто магазину и
процента 2-а за перевод в системе …
[ Полное чтение ]
Комментарии: 12
Есть такая профессия – Родину защищать
Ср Мар 03, 2010 10:15 pm автор Admin
В честь Дня защитника Отечества для жителей Орехово-Зуевского района в Центре культуры и досуга в Куровском состоялся праздничный концерт. Почетными гостями торжества были участники Великой Отечественной, Афганской …
[ Полное чтение ]
[ Полное чтение ]
Комментарии: 0
Лекарство ограничили в цене
Ср Мар 03, 2010 10:12 pm автор Admin
Говорят, что здоровье не купишь за деньги, но без денег сохранить его очень трудно. О том, насколько дорого стоит хорошее самочувствие, лучше всех, пожалуй, знают пожилые люди. Как правило, имея целый букет заболеваний, …
[ Полное чтение ]
[ Полное чтение ]
Комментарии: 0
Самые активные пользователи
Admin | ||||
AUX | ||||
Шлиссельман | ||||
yar08 | ||||
Горячая Линия МНТК | ||||
Angela | ||||
k | ||||
shurupin | ||||
Калима | ||||
kbkbz |
Теория игр
Участников: 2
Страница 1 из 1
Теория игр
Есть такой предмет называется Теория игр, если у тебя есть опыт в решении задач, то можешь подсказать как составить графики по матрицам "игроков"(проигрышь, выигрышь), а то я уже всю голову сломал.
Заранее спасибо!
Заранее спасибо!
AUX- Сообщения : 23
Очки : 33
Репутация : 0
Дата регистрации : 2010-03-03
Re: Теория игр
Не очень сильно экспертен в этой теории математики, я больше занимаюсь геометрией. Но все равно выкладывай, чем смогу, помогу.
Re: Теория игр
Можно построить при помощи OpenGl,
Пусть A - матрица игр n - строк и m - столбцов,
можно нарисовать трехмерный график f(x,y),
где числа 1,2,3,4,..n - переменная x,
а числа 1,2,3,4..m - переменная y,
f(x,y) = a[i,j] - переменная z,
(x,y,z) - точка трехмерного пространства.
то есть можно прорисовать n*m трехмерных точек вида
(i,j,a[i,j]) в OpenGl, там это возможно сделать.
Я мог бы написать такую программу в C# и выложить код , но смысла все равно нет т.к. у тебя моя программа не запуститься, потому что она требует NetFrameWork 4.0.
OpenGl к C# я подключил при помощи контрола, который я скачал в
Интернете, как подключить OpenGl к Python, я не знаю.
Если ты не хочешь пользоваться OpenGl, то тебе придется всю
математику переводящую трехмерную графику в двухмерную писать
самому, что очень сложно сделать из-за кол-ва вычислений.
Я пытался один раз написать такие классы в C#, у меня частично
получилось, но все равно при тестировании появлялись ошибки в
программе и она вылетала.
Трехмерный график причем по точкам рисовать - не очень наглядно,
при малом кол-ве точек график будет выглядеть дискретным, а при увеличении кол-ва точек просто получишь черный квадрат вместо графика.
Поэтому мировой константой рисования трехмерных графиков функций
- стал алгоритм рисования при помощи прямоугольников,
Т.е. первое ты рисуешь точки, а затем соседние точки соединяешь
прямоугольником, команда рисования прямоугольника есть в OpenGl.
Математически это выглядит так -
Есть цикл -
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
{
Point3d p1,p2,p3,p4;
p1=Point3d(i-1,j,a[i-1,j]);
p2=Point3d(i,j-1,a[i,j-1]);
p3=Point3d(i-1,j-1,a[i-1,j-1]);
p4=Point3d(i,j,a[i,j]);
DrawPolygon(p1,p2,p3,p4); здесь рисуется прямоугольник соединящий четыре точки p1,p2,p3,p4
вот рисунок -
}
}
Это в случае, если точки графика функции заданны матрицей.
А в случае численного вычисления точек графика необходимо запоминать предыдущую точку в цикле - вот так.
double aold = 0; Предыдущее значение ai
Можно задать нулем, можно если известно начальным значением.
for (int i=0; i<n; i++)
{
a[i] = f(i) - в данном случае функциональная зависимость, здесь может применяться любой алгорит вычисления значения функции.
DrawLine(a[i],aold) - соединяем линией две точки - текущее значение и предыдущее
aold = a[i]; текущее значение после прорисовки становиться предыдущим и старым.
}
Это применяется для оптимизации программы, существенно ускоряет ее работу и производительность.
В случае с двойным циклом применяется более сложный метод, но если
понятно как это работает с одним циклом, то написать код не составит труда.
Пусть A - матрица игр n - строк и m - столбцов,
можно нарисовать трехмерный график f(x,y),
где числа 1,2,3,4,..n - переменная x,
а числа 1,2,3,4..m - переменная y,
f(x,y) = a[i,j] - переменная z,
(x,y,z) - точка трехмерного пространства.
то есть можно прорисовать n*m трехмерных точек вида
(i,j,a[i,j]) в OpenGl, там это возможно сделать.
Я мог бы написать такую программу в C# и выложить код , но смысла все равно нет т.к. у тебя моя программа не запуститься, потому что она требует NetFrameWork 4.0.
OpenGl к C# я подключил при помощи контрола, который я скачал в
Интернете, как подключить OpenGl к Python, я не знаю.
Если ты не хочешь пользоваться OpenGl, то тебе придется всю
математику переводящую трехмерную графику в двухмерную писать
самому, что очень сложно сделать из-за кол-ва вычислений.
Я пытался один раз написать такие классы в C#, у меня частично
получилось, но все равно при тестировании появлялись ошибки в
программе и она вылетала.
Трехмерный график причем по точкам рисовать - не очень наглядно,
при малом кол-ве точек график будет выглядеть дискретным, а при увеличении кол-ва точек просто получишь черный квадрат вместо графика.
Поэтому мировой константой рисования трехмерных графиков функций
- стал алгоритм рисования при помощи прямоугольников,
Т.е. первое ты рисуешь точки, а затем соседние точки соединяешь
прямоугольником, команда рисования прямоугольника есть в OpenGl.
Математически это выглядит так -
Есть цикл -
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
{
Point3d p1,p2,p3,p4;
p1=Point3d(i-1,j,a[i-1,j]);
p2=Point3d(i,j-1,a[i,j-1]);
p3=Point3d(i-1,j-1,a[i-1,j-1]);
p4=Point3d(i,j,a[i,j]);
DrawPolygon(p1,p2,p3,p4); здесь рисуется прямоугольник соединящий четыре точки p1,p2,p3,p4
вот рисунок -
}
}
Это в случае, если точки графика функции заданны матрицей.
А в случае численного вычисления точек графика необходимо запоминать предыдущую точку в цикле - вот так.
double aold = 0; Предыдущее значение ai
Можно задать нулем, можно если известно начальным значением.
for (int i=0; i<n; i++)
{
a[i] = f(i) - в данном случае функциональная зависимость, здесь может применяться любой алгорит вычисления значения функции.
DrawLine(a[i],aold) - соединяем линией две точки - текущее значение и предыдущее
aold = a[i]; текущее значение после прорисовки становиться предыдущим и старым.
}
Это применяется для оптимизации программы, существенно ускоряет ее работу и производительность.
В случае с двойным циклом применяется более сложный метод, но если
понятно как это работает с одним циклом, то написать код не составит труда.
Последний раз редактировалось: Admin (Пн Ноя 28, 2011 5:31 am), всего редактировалось 1 раз(а)
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
Ср Май 15, 2024 8:27 pm автор yar08
» КАТАЛОГ САЙТОВ. КАТАЛОГ ДОСОК ОБЪЯВЛЕНИЙ. КАТАЛОГ ФОРУМОВ.
Ср Май 15, 2024 8:25 pm автор yar08
» дрова берёзовые
Вт Май 11, 2021 12:42 am автор yar08
» Каталог сайтов. Каталог досок объявлений
Вс Сен 17, 2017 12:13 am автор yar08
» Каталог сайтов. Каталог досок объявлений
Вс Сен 17, 2017 12:11 am автор yar08
» Продам сруб
Сб Окт 11, 2014 3:58 pm автор kbkbz
» Перила из нержавеющей стали в давыдово куровское
Сб Мар 29, 2014 8:17 pm автор yar08
» 3d графика
Вс Окт 20, 2013 5:25 am автор Admin
» Бытовки строительные дачные
Пн Авг 05, 2013 2:42 pm автор yar08