Я застреваю, пытаясь выполнить задание. Это последний вопрос о задании, и я собираюсь на него какое-то время с небольшим успехом. Мне нужно, чтобы превратить изображение в ASCII-графике, гдеHaskell - превратить список координат в граф ASCII?
type Point = (Int, Int)
type Image = [Point]
я должен написать функцию, которая принимает изображение и возвращает строку. Вывод должен быть что-то вроде "| ... \ n.xxx \ п + х - \ п |.. ... \ п.", Который, когда выводимый с использованием putStr выглядит
.|...
.xxx.
-+x--
.|...
С начало координат, обозначаемое символом +, - оси | и -, и точки «х».
Граф всегда должен иметь 1-точечную границу вокруг координат, поэтому, когда я печатаю график, мне нужно знать границы координат. У меня есть функция, чтобы получить их.
Я также написал функцию, split, которая берет строку и целое число и вставляет \ n на каждый n-й интервал. То, как я думал о решении вопроса, заключалось в создании пустого графика с правильными позициями для осей, а затем передачи пустого графика в новую функцию для вставки точек.
Может ли кто-нибудь помочь мне в этом? Извиняюсь, если это неопределенно, я могу предоставить более подробную информацию, которую вы можете потребовать.
Учитывая, что это домашнее задание, вы, вероятно, не заинтересованы в полных решениях. Но чтобы дать вам полезные советы, нам нужно знать, где вы застряли. Учитывая границы координат (предположим, что у вас их уже есть), удалось ли вы нарисовать оси? Начните с этого в первую очередь. –
Я бы разбил точки на несколько массивов, каждая из которых содержала все точки с одинаковыми y. Таким образом, каждая строка может отображаться индивидуально. Затем вы вызываете функцию для рендеринга одной строки. Эта функция должна «зациклиться» над списком всех возможных x, сравнить с головкой массива и 0 и вернуть соответствующий символ и вернуть функцию, примененную к оставшемуся массиву. – Alexander
@JoachimBreitner Вот где я застрял. Я знаю, что мне нужно начать рисовать из координаты (minx -1, maxy + 1), но я понятия не имею, как проверить, попал ли я в осях и т. Д. –