如何在Y轴上画线? (C infography)

时间:2016-03-24 19:25:14

标签: c graphics line

我想在Y轴上绘制线条(一个x几个y),但我找不到算法。

我的代码只绘制水平线,但我无法绘制垂直线。 我试图将x1与y1交换,x2与y2交换,但它不起作用。

以下是代码:

int     ft_abs(int nb)
{
    if (nb < 0)
        return (nb *= -1);
    return (nb);
}

//lst is my coordinates list
//s_mlx is my graphical lib
void    ft_draw(t_fdf *lst, t_mlx *s_mlx)
{
    int x;

    while (lst->next)
    {
        if ((lst->x <= lst->next->x) && (lst->next->x - lst->x >= ft_abs(lst->next->y - lst->y)))
        {
            x = lst->x;
            while (x <= lst->next->x)
            {
                mlx_pixel_put(s_mlx->mlx, s_mlx->win, x, lst->y + \
                        (lst->next->y - lst->y) * (x - lst->x) / \
                        (lst->next->x - lst->x), 0x00FFFFFF);
                x++;
            }
        }
        if ((lst->x <= lst->next->x) && (lst->next->x - lst->x <= ft_abs(lst->next->y - lst->y)))
        {
            x = lst->x;
            while (x <= lst->next->x)
            {
                mlx_pixel_put(s_mlx->mlx, s_mlx->win, x, lst->y + \
                        (lst->next->y - lst->y) * (x - lst->x) / \
                        (lst->next->x - lst->x), 0x00FFFFFF);
                x++;
            }
        }
        lst = lst->next;
    }
}

这是输出(只有水平线):

image of Above code output

如何在Y轴上绘制线条(一个x几y)以获得一种网格? (将x1y1交换,将x2y2交换不起作用)

0 个答案:

没有答案