我想在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;
}
}
这是输出(只有水平线):
如何在Y
轴上绘制线条(一个x几y)以获得一种网格? (将x1
与y1
交换,将x2
与y2
交换不起作用)