如何在Y轴上画线?(C)信息图

如何在Y轴上画线?(C)信息图,c,graphics,line,C,Graphics,Line,我想在Y轴上画线(一个x代表几个Y轴),但我找不到这样做的算法 我的代码只画水平线,但我不能画垂直线。 我试图用y1交换x1,用y2交换x2,但没有成功 代码如下: 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_f

我想在Y轴上画线(一个x代表几个Y轴),但我找不到这样做的算法

我的代码只画水平线,但我不能画垂直线。 我试图用y1交换x1,用y2交换x2,但没有成功

代码如下:

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;
    }
}
int ft_abs(int nb)
{
if(nb<0)
返回值(nb*=-1);
回报率(nb);
}
//lst是我的坐标列表
//s_mlx是我的图形库
无效英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺英尺
{
int x;
同时(lst->next)
{
如果((lst->x next->x)和&(lst->next->x-lst->x>=ft_abs(lst->next->y-lst->y)))
{
x=lst->x;
同时(x下一步->x)
{
像素输出(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->x next->x)和&(lst->next->x-lst->x next->y-lst->y)))
{
x=lst->x;
同时(x下一步->x)
{
像素输出(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;
}
}
以下是输出(仅水平线):


如何在
Y
轴(一个x代表多个Y)上绘制线,以获得一种网格?(用
y1
交换
x1
,用
y2
交换
x2
不起作用)

你必须给我们更多。什么不起作用?你明确地尝试了什么?C没有“绘制”任何东西的概念,尽管可能有一些库可以从C中用于这样做。因此,关于如何绘制任何东西的问题将取决于您使用的是什么样的库。我认为他使用的是:@Martin,我发布的函数绘制了我上面发布的图像。只有水平线,但我也想画垂直线(从x0-y0到x0-y1…x0-yMax,等等)来有一种网格。我画这些垂直线的方法是用lst->y替换lst->x,用lst->next->y替换lst->next->x,但没有用。