Простая графическая библиотека на Haskell? [закрыто]

Эта ошибка возникает при переполнении циклов цикла. Давайте рассмотрим простой пример:

class demo{
  public static void main(String a[]){

    int[] numberArray={4,8,2,3,89,5};

    int i;

    for(i=0;i<numberArray.length;i++){
        System.out.print(numberArray[i+1]+"  ");
    }
}

Сначала я инициализировал массив как «numberArray». то некоторые элементы массива печатаются с использованием цикла. Когда цикл запускает время «i», напечатайте элемент (numberArray [i + 1] .. (когда значение i равно 1, будет напечатан элемент numberArray [i + 1].) Предположим, что, когда i = (numberArray. length-2), последний элемент массива печатается. Когда значение «i» переходит к (numberArray.length-1), нет значения для печати. ​​В этот момент происходит «ArrayIndexOutOfBoundsException». Я надеюсь, что вы можете получить idea.thank you!

14
задан Don Stewart 17 April 2011 в 21:23
поделиться

3 ответа

Это не совсем «простая» библиотека, но в Интернете есть много информации об OpenGL и GLUT, а также несколько очень хороших руководств и множество примеров кода.

Самая большая проблема, с которой вы столкнулись, заключается в том, что привязки OpenGL и GLUT в Haskell не включают библиотеки, к которым они привязаны. (Это верно и для wxWidgets.) Многие дистрибутивы Linux поставляются с бинарными файлами OpenGL, но не Windows. Платформа Haskell должна была исправить это, но мне показалось, что это не так.

Итак, если вы устанавливаете систему в Windows, вот что я рекомендую вам попробовать:

  1. Следуйте инструкциям в этом блоге до буквы. Они сложные - включают в себя установку MinGW, MSys и ручную компиляцию проекта GLUT из SourceForge, но это ' единственный способ заставить OpenGL работать. Я успешно установил на трех разных машинах, включая XP и Vista, поэтому могу с уверенностью сказать, что это очень хорошие направления.
  2. Как только это сработает, посмотрите эти два потрясающих учебные пособия. Они действительно открыли мне глаза на то, насколько мощным может быть Haskell, когда дело касается графики. Вы обнаружите, что этот код намного проще, чем вы, возможно, ожидали.
  3. Ознакомьтесь с примерами игр на странице Haskell OpenGL . Они очень экспериментальны - что хорошо, так как требуют меньше кода, чем вы найдете в производственной системе, - но они также удивительно сложны. (И да, уже существует более одной простой реализации Тетриса, но пусть это вас не останавливает. )
  4. Еще один хороший источник примеров кода - это собственно привязка GLUT в Haskell. Поищите каталог примеров, и вы найдете множество портов с примерами кода из Красной книги OpenGL.

OpenGL очень поддерживает состояние, поэтому вы можете найти код Haskell немного пугающим, если вы еще не полностью изучили Monads. Я использую свои эксперименты с OpenGL как мотивацию, чтобы наконец осмыслить эту концепцию.

Удачи!

11
ответ дан 1 December 2019 в 13:59
поделиться

Просматривали ли вы следующие списки:

Графические библиотеки Haskell : Похоже, здесь довольно много интерфейсов для OpenGL, SDL и других графических библиотек.

Haskell GUI : Здесь также есть несколько библиотек wxWidget.

4
ответ дан 1 December 2019 в 13:59
поделиться

Cairo Написан на C, но имеет привязки haskell. Возможно, это будет хорошей идеей. Я когда-либо использовал только свои привязки python, но они, похоже, работали хорошо.

1
ответ дан 1 December 2019 в 13:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: