Pull to refresh

F#: очень красивый пример с использованием DirectX

Reading time2 min
Views1.7K
Хотел сделать ссылкой, но текст не влазит в 500 символов…
Итак, F# — это новый язык в линейке .NET, язык функционального программирования. Сошников Д.В. на platforma2009 в конце доклада показывает очень интересный и красивый пример использования F#, строя графики функций (зависящих и от времени!) и запуская по поверхностям графиков катающиеся шарики.

Пример этот можно взять тут, единственное, что нужно немного подшливовать его под текущую версию F# CTP 1.9.6.2.
1. #I @"C:\WINDOWS\Microsoft.NET\Managed DirectX\v9.02.2904" ;; нужно заменить на установленную вашу версию DirecX (SDK), у меня она лежала в #I @"C:\Windows\Microsoft.NET\DirectX for Managed Code\1.0.2902.0";; (у вас, думаю, будет лежать примерно там же, единственное — разница версий — последние цифры)
2. Добавить reference на сборки:
#r "FSharp.PowerPack.dll" ;;
#r "FSharp.Core.dll" ;;
3. Заменяйтие
open Idioms
open Compatibility 
open List
на
open Microsoft.FSharp.Collections.List
4. В строке 285 мне пришлось в функции let meshGet mesh (i,j) = let X,Y = mesh in X.(i,j), Y.(i,j) добавить параметризацию и стало выглядить так let meshGet mesh (i,j) = let (X: float[,],Y: float[,]) = mesh in X.[i,j], Y.[i,j]
5. На строке 307 опять убираем open Idioms и open List
6. На строке 334 меняем let (doDrawScene,drawScene): event = IEvent.create() на let (doDrawScene,drawScene): event<time> = IEvent.create() (об этом в принципе написано на форуме — откуда брали пример)

Вот и все, запускайте пример (он сделан для запуска в F# Interactive).

Ссылки по теме:
Tags:
Hubs:
+11
Comments3

Articles