1

场景:我需要在网页上复制太阳能发电厂的现场配置(镜子和接收器的矩形集)。我需要使用 c#.net 向具有给定 X、Y、宽度和高度参数的网页动态添加矩形。我将接收用户输入的一组矩形坐标作为 X,Y 整页图。例如:(-42.34,-240.34,2.25,16.65) (10.34,-140.34,10.25,5.65)

我从用户输入收到的坐标与 X 和 Y 整页图相关,其中也包括负坐标。但 DrawRectangle 接受 X 和 Y 值作为正数且只有整数值。

我的问题是我应该如何将网页上的用户输入 X 和 Y 坐标(-ve 和 +ve)和浮点宽度值关联到整数?

当我尝试转换为 Int 时,矩形要么重叠,要么根本不显示。矩形的输入值集更接近,仅点值存在差异。

4

1 回答 1

2

鉴于目标(并忽略所需的 Graphic.DrawRectangle),您最好的选择是使用 SVG。SVG 格式实际上是一个描述您想要的图像的 XML 文件,因此您可以在服务器端生成它并将其缓存为文本(在 clint 或服务器上),SVG 也使用矢量图形(顾名思义*)至极允许任意分辨率。

*:SVG代表可缩放矢量图形。

我向您推荐3w.org 上有关 SVG 的本教程,以帮助您入门。


以下是 SVG 的示例:

HTML 中的内联 SVG

索引.html

<!DOCTYPE html>
<html>
    <head>
        <title>SVG test</title>
    </head>
    <body>
        <svg xmlns="http://www.w3.org/2000/svg" version="1.1">
            <rect x="10" y="10" width="50" height="30" />
        </svg>
    </body>
</html>

img 元素中的 SVG

矩形.svg

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
    <rect x="10" y="10" width="50" height="30" />
</svg>

索引.htm

<!DOCTYPE html>
<html>
    <head>
        <title>SVG test</title>
    </head>
    <body>
        <img src="rectangle.svg" alt="rectangle" />
    </body>
</html>

我推荐第二个选项(单独的文件)。请注意,这是工作草案,得到很好的支持。所以,检查浏览器兼容性

您可能不希望直接输出 SVG 文本,在这种情况下,请检查在 .NET/C# 中绘制 SVG?在这里,在 StackOverflow。

于 2012-10-16T23:14:26.653 回答