C#抗混叠算法
我想用C#编写自己的抗锯齿算法。我的画只有两种颜色;黑白相间的 在Wikipedia()上,我发现了以下伪解码:C#抗混叠算法,c#,algorithm,antialiasing,C#,Algorithm,Antialiasing,我想用C#编写自己的抗锯齿算法。我的画只有两种颜色;黑白相间的 在Wikipedia()上,我发现了以下伪解码: Define function PlotAntiAliasedPoint ( number x, number y ) For roundedx = floor ( x ) to ceil ( x ) do For roundedy = floor ( y ) to ceil ( y ) do percent_x = 1 - ab
Define function PlotAntiAliasedPoint ( number x, number y )
For roundedx = floor ( x ) to ceil ( x ) do
For roundedy = floor ( y ) to ceil ( y ) do
percent_x = 1 - abs ( x - roundedx )
percent_y = 1 - abs ( y - roundedy )
percent = percent_x * percent_y
DrawPixel ( coordinates roundedx, roundedy, color percent (range 0-1) )
如何在C#中实现此伪代码?private void plot抗锯齿点(十进制x,十进制y)
{
对于(var rordDex=数学.Lead(x);runDeX)它看起来很自圆其说。您不需要特别了解RoDeDX= Lead x(x)到CeIL(x)do/C++ >的代码< > >它只是一个普通的<代码> < /Cyto>循环,就像您在Python或java或JavaScript或C或C++中看到的,或者……实际上是大多数语言。(int roundedx=Math.Floor(x);roundedx我认为维基百科上的文章缺少一些关于变量的信息。不清楚什么是x和y以及为什么它们是十进制的。乍一看,(x,y)是否是图像上的一个点,例如(1024 x 768)我认为x是一个介于0和1024之间的整数,y是一个介于0和768之间的整数,舍入是没有意义的。所以我不明白为什么这个问题有负面评价。我可以理解为什么有些人(包括我自己)在理解这个伪码算法时有问题。
private void PlotAntiAliasedPoint(decimal x, decimal y)
{
for (var roundedx = Math.Floor(x); roundedx <= Math.Ceiling(x); roundedx++)
{
for (var roundedy = Math.Floor(y); roundedy <= Math.Ceiling(y); roundedy++)
{
var percent_x = 1 - Math.Abs(x - roundedx);
var percent_y = 1 - Math.Abs(y - roundedy);
var percent = percent_x*percent_y;
//DrawPixel(coordinates roundedx, roundedy, color percent(range 0 - 1))
}
}
}