Так я сначала вместо него сделал каку, а потом не смог по описанию. Это после того, как я умножение матриц руками сделал всего в 17 раз медленнее, чем на ассемблере
Так он же тривиален🤔
Пкремножение матриц - аццкиц ад. У меня научка была связана тесно с перемножением матриц на ГПУ, кублас творит черную магию
Вот на ГПУ это и надо вынести, но ГПУ не справится с обходом октодерева
Есть реализации?
Неа, но я писал на шарпах годик назад
bres :: Int -> Int -> Int -> [(Int, Int, Int)] bres run rise1 rise2 | run < 0 = [(-x, y, z) | (x, y, z) <- bres (-run) rise1 rise2] | rise1 < 0 = [( x, -y, z) | (x, y, z) <- bres run (-rise1) rise2] | rise2 < 0 = [( x, y, -z) | (x, y, z) <- bres run rise1 (-rise2)] | rise1 > max run rise2 = [( x, y, z) | (y, x, z) <- bres rise1 run rise2] | rise2 > max run rise1 = [( x, y, z) | (z, x, y) <- bres rise2 run rise1] | run < rise1 = [( x, y, z) | (y, x, z) <- bres rise1 run rise2] | otherwise = zip3 [0..run] (map fst $ iterate (step rise1) (0, run `div` 2)) (map fst $ iterate (step rise2) (0, run `div` 2)) where step rise (y, err) | err' < 0 = (y + 1, err' + run) | otherwise = (y, err') where err' = err - rise Вот этот спёртый откуда-то брезенхем рисует следующее:
Обсуждают сегодня