求一个C# 矩阵算法

accpyjc 2016-09-14 01:11:35

如图,我有个列表List<Item> 就是上面9个方块 ,需要参与的Item旋转 90度、 180度、270度
转换前(0度)
(1)000x000 (2)100x000 (3)200x000
(4)000x100 (5)100x100 (6)200x100
(7)000x200 (8)100x200 (9)200x200

转换90度后
(7)000x000 (4)100x000 (1)200x000
(8)000x100 (5)100x100 (2)200x100
(9)000x200 (6)100x200 (3)200x200

public class Item
{
int x,
int y,
int width=100,
int height = 100,
int angle = 0,
}

求大神给一个算法, 支持顺时针 、逆时针旋转,有可能不是9个 例如:(0124)(1258)

...全文
461 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinting2010 2016-09-19
  • 打赏
  • 举报
回复



是这样吗?
jinting2010 2016-09-19
  • 打赏
  • 举报
回复
http://pan.baidu.com/s/1o850dqM 借助winform的datagridview实现的
五更琉璃 2016-09-19
  • 打赏
  • 举报
回复
记下来了 这题用来装B不错
WoKanBuDao 2016-09-19
  • 打赏
  • 举报
回复
namespace 旋转 { class Program { static void Main(string[] args) { Program p = new Program(); p.XuanZhuan90(); Console.Read(); } List<string[]> lists; public List<string[]> GetList() { lists = new List<string[]>(); lists.Add(new string[] { "1", "2", "3" }); // "1", "2", "3" 7 4 1 lists.Add(new string[] { "4", "5", "6" }); // "4", "5", "6" 8 5 2 lists.Add(new string[] { "7", "8", "9" }); // "7", "8", "9" 9 6 3 for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { Console.Write(lists[i][j]); } Console.WriteLine(); } Console.WriteLine("+++++++++++++++++++++++++++++++++++"); return lists; } public void XuanZhuan90() { lists = GetList(); List<string[]> listsnew = new List<string[]>(); for (int j = 0; j < 3; j++)//int j = 0; j < 3; j++ { for (int i = 3; i >0 ; i--) { Console.Write(lists[i-1][j]); } Console.WriteLine(); } } } } 这是旋转90°的代码。还是要根据数组的下标 【x】【y】来看的 。。。。 个人看法
jinting2010 2016-09-19
  • 打赏
  • 举报
回复
代码不知道怎么弄上来 主要逻辑,数据按圈获取,再做角度旋转就简单很多 如果那一圈只有一个数字(奇数边长,中间那个),自然不动, 否则都有4个边,这四个边跳转就好理解了
WoKanBuDao 2016-09-19
  • 打赏
  • 举报
回复
引用 1 楼 jinting2010 的回复:
是这样吗?
怎么弄得 ?偶然看到这个问题。。。求分享代码
xhk008 2016-09-19
  • 打赏
  • 举报
回复
引用 楼主 accpyjc 的回复:
如图,我有个列表List<Item> 就是上面9个方块 ,需要参与的Item旋转 90度、 180度、270度 转换前(0度) (1)000x000 (2)100x000 (3)200x000 (4)000x100 (5)100x100 (6)200x100 (7)000x200 (8)100x200 (9)200x200 转换90度后 (7)000x000 (4)100x000 (1)200x000 (8)000x100 (5)100x100 (2)200x100 (9)000x200 (6)100x200 (3)200x200 public class Item { int x, int y, int width=100, int height = 100, int angle = 0, } 求大神给一个算法, 支持顺时针 、逆时针旋转,有可能不是9个 例如:(0124)(1258)
厉害呀,可以!

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧