在c++中操作对角线
Manipulating a diagonal line in C++
我正在使用嵌套的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);
}
}
}
截图!
你实际上是在画一个由四条线定义的多边形。直线的方程是y=mx+b,你可以选择在直线的上方或下方。虽然这不是我要做的,但它符合你的方法的精神,即测试y-mx+b<0(或>0)对于四对不同的m和b。这会给你一个线段,你可以得到类似的其余部分。
现在,您只选择了两条线之间的区域。这就是为什么你会得到那个图像
相关文章:
- 为什么在popback()操作之后,它仍然打印完整的矢量
- 重载操作程序时出错>>用于类中的字符串 memebr
- 对字符串进行位操作
- 我可以在 C++ 中的函数体之外进行操作吗?
- MPI突然停止了对多个核心的操作
- 如何在信号处理程序和普通函数中对全局变量进行互斥读写操作
- 如何在cuSparse中得到稀疏矩阵的对角线
- 对字符数组中的元素执行逐位操作
- 如何在directx/c++中进行平移/缩放操作
- 逐位操作的隐式类型转换
- 为什么一个向量上的多线程操作很慢
- 排序时无法执行交换操作.我做的时候它会崩溃.为什么
- 如何打印数组对角线的一侧
- 位移操作和位掩码未检测到重复字符
- 如何进行特定的位操作?
- 当我们进行一些操作时,应该使用什么'std::string'或'std::stringstream'?
- 字符串操作 - 字符计数
- 此代码中的操作流程是什么?C/C++.
- 复制和交换习惯用法与移动操作之间的交互
- 在c++中操作对角线