我必须绘制具有较大双重值的行,如(3000.00,4500.45)。
CImg<unsigned char> img(800,800,1,3,20);
img.draw_line( 3000.00, 4500.45, 3478.567, 4500.45, RED);
但我想将屏幕尺寸限制为800x800
我想在800点内采用Point的坐标模数 喜欢
3000.00%800 = 600
我的屏幕可以容纳600。 但问题是,CPP不支持双值模数。
double a = 3000.00;
printf("%lf",a%800.0); //Expected 600 but exception
**Invalid operand of type double,double to binary operator%**
如何使用CImg在屏幕上显示这些大点?
答案 0 :(得分:1)
%
余数运算符的操作数不能使用fmod (double numer, double denom)
函数的双重(或浮动)。
答案 1 :(得分:1)
全部取决于您想要实际执行的内容:
CImg<T>::draw_line()
方法实现剪切,它将自动为您执行此操作。int
,然后再使用%
运算符: img.draw_line( ((int)x0)%800, ((int)y0)%800, ((int)x1)%800, ((int)y1)%800, RED);
但请注意,将绘制的线条 nothing 与原始线条无关:执行模数不是绘制线条的剪切方法。