C++ 在C+中操纵对角线+;

C++ 在C+中操纵对角线+;,c++,math,drawing,lines,diagonal,C++,Math,Drawing,Lines,Diagonal,我正在玩使用嵌套for循环来绘制像素和基本上绘制标志的游戏。到目前为止,我已经学会了如何画圆、对角线和十字架 然而,我不知道如何限制从哪里画一条直线 基本上,我想弄清楚我需要如何改变我用来在英国国旗上画对角线的代码来制作纳粹德国国旗上的纳粹十字记号。任何帮助都将不胜感激 以下是我当前的代码和我得到的屏幕截图: for (int x = 0; x < 240; x++) { for (int y = 0; y < 160; y++) { uint16_t

我正在玩使用嵌套for循环来绘制像素和基本上绘制标志的游戏。到目前为止,我已经学会了如何画圆、对角线和十字架

然而,我不知道如何限制从哪里画一条直线

基本上,我想弄清楚我需要如何改变我用来在英国国旗上画对角线的代码来制作纳粹德国国旗上的纳粹十字记号。任何帮助都将不胜感激

以下是我当前的代码和我得到的屏幕截图:

for (int x = 0; x < 240; x++)
{
    for (int y = 0; y < 160; y++)
    {
        uint16_t cX = 120;
        uint16_t cY = 80;
        uint16_t r = 66;

        // Makes line
        if (x-100 < y * 240 / 240 + 20 && x-100 > y * 240 / 240 - 20)
        {
            PlotPixel16(x, y, black);
        }
// Makes circle
        else if (((x-cX)*(x-cX))+((y-cY)*(y-cY)) < r*r)
        {
            PlotPixel16(x, y, white);
        }
        else
        {
            PlotPixel16(x, y, red);
        }
    }
}
for(int x=0;x<240;x++)
{
对于(int y=0;y<160;y++)
{
uint16_t cX=120;
uint16_t cY=80;
uint16_t r=66;
//排队
如果(x-100y*240/240-20)
{
PlotPixel16(x,y,黑色);
}
//绕圈子
如果((x-cX)*(x-cX))+((y-cY)*(y-cY))

实际上,您正在绘制一个由四条线定义的多边形。直线的方程式是y=mx+b,您希望位于直线上方或下方。虽然我不会这样做,但它符合您测试四对不同m和b的y-mx+b0)的方法的精神。这将给你一条线段,你可以得到其余的类似的线段


现在,您只在两条线之间选择一个区域。这就是为什么你会得到这个图像。

你实际上是在画一个由四条线定义的多边形。直线的方程式是y=mx+b,您希望位于直线上方或下方。虽然我不会这样做,但它符合您测试四对不同m和b的y-mx+b0)的方法的精神。这将给你一条线段,你可以得到其余的类似的线段


现在,您只在两条线之间选择一个区域。这就是为什么你会得到这样的图像。

你能展示你期望的结果吗?@ScottHunter像这样你能展示你期望的结果吗?@ScottHunter像这样