へぼろっぱぁ

脳内容量が少ないTHREE-ONEのための備忘録

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  345  : 記事  0  : コメント  863  : トラックバック  60

ニュース

フォクすけぬいぐるみを当ててやる!!
Mozilla Firefox ブラウザ無料ダウンロード
ついでに、みんな FireFox 使えばいいと思うよ。

書庫

日記カテゴリ

Accessory

Community

Private

今日はマス北野の日です。
というわけで、数回前のネタであるフラクタルで遊んでみましょう。

コードビハインド
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class FractaleTest_FractaleTest : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        this.rowRepeater.DataSource = this.CreateDataSource(64);
        this.rowRepeater.DataBind();
    }

    /// <summary>
    /// データソースを作成します。
    /// </summary>
    /// <param name="lineCount">表示行数</param>
    /// <returns>データソース</returns>
    private List<List<bool>> CreateDataSource(int lineCount)
    {
        List<List<bool>> dataSource = new List<List<bool>>(lineCount);
        for (int i = 0; i < lineCount; i++)
        {
            int dataCount = i + 1;
            List<bool> line = new List<bool>(dataCount);
            for (int j = 0; j < dataCount; j++)
            {
                if ((j == 0) || (j == dataCount - 1))
                {
                    line.Add(true);
                }
                else
                {
                    List<bool> previousLine = dataSource[dataSource.Count - 1];
                    line.Add(previousLine[j - 1] ^ previousLine[j]);
                }
            }
            dataSource.Add(line);
        }

        return dataSource;
    }
}


aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FractaleTest.aspx.cs" Inherits="FractaleTest_FractaleTest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>シェルピンスキーのギャスケット</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table cellpadding="0" cellspacing="0" border="0">
            <asp:Repeater ID="rowRepeater" runat="server">
                <ItemTemplate>
                    <tr>
                        <td style="text-align:center; font-family:Monospace" nowrap="nowrap">
                            <asp:Repeater ID="circleRepeater" runat="server" DataSource="<%# Container.DataItem %>">
                                <ItemTemplate>
                                    <%# ((bool) Container.DataItem) ? "○" : "●" %>
                                </ItemTemplate>
                            </asp:Repeater>
                        </td>
                    </tr>
                </ItemTemplate>
            </asp:Repeater>    
        </table>
    </div>
    </form>
</body>
</html>


結果(ちょっとサイズでかいです)

フラクタルだけに再帰でやりたかったけど、わかりにくいソースになりそうでやめた。
投稿日時 : 2007年2月23日 2:44

コメント

No comments posted yet.

Post Feedback

タイトル
名前
Url:
コメント: