GridMethod - 如何破解艺术






4.14/5 (4投票s)
下载一幅杰作,设置此应用程序,然后“黑入”成为一名艺术家
这算是艺术吗?
我有很多空闲时间,喜欢用我所谓的“知识储备”来填充那些我不太擅长的事情,比如各种活动、书籍和项目。所以,不久前,我在网上订购了一本《格雷氏解剖学》,并开始研究它。我当然不会通过医学院的解剖学考试,但花时间研究它确实大大提高了我对人类解剖学的了解,而且,作为意外收获,我发现努力临摹那些大约 250 幅解剖插图极大地提高了我的绘画技巧。起初,我只是把笔放在纸上,尽力画出这些解剖图像。但它们有时会模糊不清,需要仔细阅读文字才能标注出所有粘糊糊的神经、肌腱和血管。尽管如此,如果那些我初次尝试用艺术眼光绘制的插图是我七岁的孩子画的,我也会为此感到骄傲。然而,将所有精力投入到研究文本让我开始思考,我或许可以比那些最初潦草的涂鸦做得更好。
看!
我为你带来了“网格法”。你测量,再测量,然后观察,绘制曲线,再测量。这过程可能缓慢而乏味,但结果相当不错。
我的《格雷氏解剖学》笔记已经丢失,对我来说已没什么用处,但我在复制现有绘画、照片或拼贴图像方面的能力却让我感到非常满足。当然,我仍然是一名平庸的艺术家,如果不是刻意想画可爱的丽莎,我甚至无法画出一个像样的辛普森一家角色,即使尝试了,也会失败得如此糟糕,看起来更像是皱巴巴的老爷爷。但至少我拥有工程学的知识,可以制作这个应用程序并使用它。现在,我可以戴着围巾,叼着烟斗,大谈特谈明暗对比法,好像我真懂它是什么意思一样。这不就是艺术家的意义所在吗?
下面这幅画是彼得·保罗·鲁本斯的作品,名为《为圣战而战》。这真是一幅杰作,他是个天才。
这绝对是我最喜欢的画作之一,你可以在这里阅读相关信息,你会发现它是模仿列奥纳多·达·芬奇于 1505 年在佛罗伦萨创作的一幅壁画。那幅壁画已经遗失,但因为我想要一幅,而我之前打算用来购买上面那幅鲁本斯作品(在苏富比拍出了 785,000 美元)的钱目前被用于其他投资,我便想自己动手画一幅。我去了折扣店购买必需品。使用一张旧的泛黄床单、这个应用程序和 8 美元的永久性马克笔,我在 12 天内(2020 年 3 月)完成了它。
我甚至从未玩过图版游戏,更别说学习美术了。我的工具是 for 循环和函数、二极管、小部件和移位寄存器,而不是画笔、颜料或墨水瓶!
你可以看到我用来绘制网格的“白板”绿色马克笔线条(提醒:不要在布上使用绿色白板马克笔,如果你打算之后擦掉的话)。然后我制作了一个矩形塑料切片,一次放在每个网格方块上,测量所有重要点,然后花了不到两周的时间才完成。每个网格方块大约需要 3-4 小时,有些甚至更长,总共大约 100 小时。你可能是你工程公司的危机处理英雄,但没有什么比醒来时看到墙上挂着自己绘制的鲁本斯杰作的复制品更能让你感到振奋的了。
当这变得乏味时,你还可以再画一幅。
看看我最新的艺术项目(2020 年 6 月/7 月),阿尔布雷希特·丢勒的《骑士、死亡和魔鬼》。
我还在努力“黑入”摄影,所以上面的图像有点模糊,但这是骑士马头的特写。
你可以下载我 177 厘米 x 133 厘米的阿尔布雷希特·丢勒原创铜版画复制品的其他特写照片。
我花了所有这些时间绘制这幅杰作……(它挂在我墙上看起来棒极了),而我竟然无法在不使用这个应用程序的情况下画出丽莎·辛普森!这一切都取决于测量和连接点,需要一点耐心和几周的居家隔离时间才能完成,然后你就得到了一件伟大的艺术品,任何没有亲眼看到你如何绘制它的人都不会相信是你做的,因为它显然好到令人难以置信!
网格法让艺术变得“可黑入”……
也许这也能成为你的一个爱好。
网格法
如上所述,这是一个应用程序,可以让任何有耐心和意愿的人绘制出一些有艺术家感觉的作品。
下面是屏幕截图
顶部的控制面板允许你选择要绘制的图像。此处显示的网格值 (6, 5) 分别对应于网格的列数和行数。你可以随时更改它们,但最好在项目过程中坚持使用一组值。使用你回收箱里废弃的半透明塑料制作一个比画布上一个网格方块稍大一些的框架,并在所有边缘画上尺子以帮助你测量,然后从画布的右下角开始,一次一个网格方块地向左上角移动,确保始终以你已绘制的内容为基础。自动尺寸选项允许你输入画布尺寸,然后 Grid Method 应用程序会为你将图像居中显示,你只需将鼠标光标放在屏幕上的任何位置,就能读取出它们在画布上对应的测量值。在上面的图像中,你可以在网格 (1, 1) 的右上角附近看到一个小标签,显示 (22.04, 5.00),这些值是从当前网格方块的左上角测量的画布上的点的笛卡尔坐标 (x, y)。只需将鼠标移到相应位置,读取值,进行测量和绘制。你可以使用菜单选项从画布的左上角(而不是当前网格方块)进行测量,但这会失去网格的意义。如果你想行使你作为工程师的权利自己进行计算,可以取消选中自动尺寸选项,如果觉得有帮助,可以借助计算器来慢慢适应艺术的世界,但自动尺寸选项非常方便。
选择一幅画或你爱人的肖像,尝试一下,你很快就会发现自己在这方面很有天赋。
代码
代码只是一个简单的用户界面。这个项目没有什么真正困难的。它使用了我之前做的一个图片查看器,允许用户使用鼠标滚轮放大屏幕上的图像。这是名为 `picViewer` 的 `PictureViewer:PictureBox` 对象。看看下面列出的 `picViewer` 的一些事件处理程序,其中大部分操作正在发生。
picViewer.MouseWheel += PicViewer_MouseWheel;
picViewer.MouseMove += PicViewer_MouseMove;
picViewer.MouseDown += PicViewer_MouseDown;
picViewer.MouseUp += PicViewer_MouseUp;
picViewer.MouseLeave += PicViewer_MouseLeave;
picViewer.MouseEnter += PicViewer_MouseEnter;
你在笛卡尔坐标标签中看到的文本是以公制或英制形式显示的,这可能对代码重用有益。
string RulerText
{
get
{
if (RulerMeasureFromEdge)
{
if (Metric)
{
double dblX =
(double)((double)picViewer.lstRegions[0].ptMousePosition.X * Ratio_X);
double dblY =
(double)((double)picViewer.lstRegions[0].ptMousePosition.Y * Ratio_Y);
return "("
+ dblX.ToString(".00")
+ ", "
+ dblY.ToString(".00")
+ ")";
}
else
{
float fltX =
(float)((double)picViewer.lstRegions[0].ptMousePosition.X * Ratio_X);
float fltY =
(float)((double)picViewer.lstRegions[0].ptMousePosition.Y * Ratio_Y);
string strX = Math3.classMath3.FeetDecimalToFraction(fltX/12f);
string strY = Math3.classMath3.FeetDecimalToFraction(fltY/12f);
return "(" + strX + ", " + strY + ")";
}
}
else
{
double dblX = ((double)picViewer.lstRegions[0].ptMousePosition.X);
double dblGridWidth = GridWidth;
while (dblX > dblGridWidth)
dblX -= dblGridWidth;
double dblY = (double)picViewer.lstRegions[0].ptMousePosition.Y;
double dblGridHeight = GridHeight;
while (dblY > dblGridHeight)
dblY -= dblGridHeight;
if (Metric)
return "("
+ (dblX * Ratio_X).ToString(".00")
+ ", "
+ (dblY * Ratio_Y).ToString(".00")
+ ")";
else
{
string strX = Math3.classMath3.FeetDecimalToFraction
( (float)((dblX / dblGridWidth * txtCanvas_Width.Value /
(double)nudGridWidth.Value) / 12.0));
string strY = Math3.classMath3.FeetDecimalToFraction
( (float)((dblY / dblGridHeight * txtCanvas_Height.Value /
(double)nudGridHeight.Value) / 12.0));
return "(" + strX + ", " + strY + ")";
}
}
}
}
public static string FeetDecimalToFraction(float fltFeet)
{
int intSign = Math.Sign(fltFeet);
fltFeet = Math.Abs(fltFeet);
int intFeet = (int)fltFeet;// - Math.Floor(fltStandard));
float fltInches = (fltFeet- (float)intFeet) * 12f;
int intInches = (int)fltInches;// - Math.Floor(fltInches));
float fltSixteenths = (fltInches - (float)intInches) * 16f;
int intSixteenths = (int)(fltSixteenths+.5);// - Math.Floor(fltSixteenths));
classFraction cFraction = new classFraction(intSixteenths, 16);
classFraction cFraction_Reduced = classFraction.ReduceToLowestTerms(ref cFraction);
if (intFeet == 0 && intInches == 0 && cFraction_Reduced.Numerator == 0)
return "0";
if (cFraction_Reduced.Denominator == cFraction_Reduced.Numerator)
{
cFraction_Reduced.Numerator = 0;
intInches++;
if (intInches == 12)
{
intInches = 0;
intFeet++;
}
}
string strRetVal = (intSign < 0
? "-"
: "")
+ (intFeet != 0
? intFeet.ToString() + "\""
: "")
+ (intInches > 0 || cFraction_Reduced .Numerator >0
? intInches.ToString() + "'"
: "")
+ (cFraction_Reduced.Numerator > 0
? cFraction_Reduced.toString()
: "");
return strRetVal;
}
摘要
随着新型冠状病毒 Covid-19 将你锁在室内,现在可能是尝试新事物的好时机。拿上你孩子的一些蜡笔(除了她特别喜欢的亮粉色光面蜡笔)试试看。你可以在你的生活中增添一些色彩。
历史
- 2020 年 3 月 20 日
- 初始版本
- 2020 年 3 月 23 日
- 上传了新的源代码 - 修复了文件对话框问题
- 2020 年 7 月 17 日
- 更新了源代码 - 添加了标尺
- 2020 年 8 月 14 日
- 添加了 CTRL-SHIFT-Z 缩放信息标签
- 鼠标中键拖动和移动选项
- 我最新项目“骑士、死亡和魔鬼”的图像