Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#创建具有不同纵横比的矩形_C# - Fatal编程技术网

c#创建具有不同纵横比的矩形

c#创建具有不同纵横比的矩形,c#,C#,我正在用wpf编写一个应用程序,其中用户在2d空间中定义一个矩形{x,x,w,h}。这很容易。现在下一点是我遇到的困难。这个矩形代表的是一个图片空间,我需要保存两个矩形,一个保持1:3的纵横比,另一个保持1:4的纵横比 现在,我提出了关于如何获得纵横比的公式(假设它是正确的) 1.3纵横比: w:2119.0 h:w/1.3 1.4纵横比: w:h*1.4 h:1515.0 但我不知道的是如何得到两者的坐标。我想我必须从初始矩形的坐标中得到它。但我不确定。任何意见都将不胜感激 我认为通常在纵横

我正在用wpf编写一个应用程序,其中用户在2d空间中定义一个矩形{x,x,w,h}。这很容易。现在下一点是我遇到的困难。这个矩形代表的是一个图片空间,我需要保存两个矩形,一个保持1:3的纵横比,另一个保持1:4的纵横比

现在,我提出了关于如何获得纵横比的公式(假设它是正确的)

1.3纵横比: w:2119.0 h:w/1.3

1.4纵横比: w:h*1.4 h:1515.0


但我不知道的是如何得到两者的坐标。我想我必须从初始矩形的坐标中得到它。但我不确定。任何意见都将不胜感激

我认为通常在纵横比中,高度为1,宽度随高度和比例而变化

  • 因此,如果您需要选择您案例中的高度,它将 像原版一样:1515
  • 宽度为高度*1.3=1969.5,高度*1.4=2121
  • x将是x+((旧宽度-新宽度)/2)、100+((2119-1969.5)/2)=174.75和100+((2119-2121)/2)=99
  • y将是相同的或任何你想要的位置, 低于或高于原始的。可以是100到1665就可以是原来的50下吧等等

宽高比为1:3意味着矩形比其宽度高三倍。因此,从宽度计算高度将是
h=3*w
@Clemens当我说1:3和1:4时犯了一个错误。这就是创建一个纵横比为1.3的矩形和另一个纵横比为1.4的矩形。然后使用这些因子。给定纵横比
a
(例如
a=1.3
),然后只需计算
w=a*h
h=w/a
。不确定你的实际问题是什么。@克莱门斯唯一的问题是我不知道如何计算新矩形的位置(x,y)。我们如何知道你对矩形位置的要求?