[sport]d3.js與SVG,同場加映「正接多邊形」、「對戰表製作」

參考網址:

一直以來,對戰表的產生總是無法順利完成。看到SVG檔的結構,突發奇想,為什麼要跟樹狀結構硬拼呢?
既然有人可以做出樹狀結構的SVG檔了,就直接拿它來用,只要把資料庫中的人名接上去,就可以完成對戰表了。
感謝ren1244寫出這麼好用的程式,並大方分享。

雙敗淘汰圖形產生器


台部落 用d3.js+svg繪製圓內接正多邊形

it鐵人賽 D3.js新手開發基本圖表

網頁直接編輯環境 https://jsfiddle.net/

文字跟隨曲線排列 [D3]用 D3.js 畫出 SVG 基本圖形 – 文字 text

文字直排 SVG 研究之路 (8) – text 文字

HTML dir Attribute 與 CSS writing-mode  writing-mode: tb 文字直排 

SVG 完整教學 31 天

Is it possible to import svg shapes in d3.js?

getBBox() https://www.zhangxinxu.com/github/demo-Snap.svg/demo/basic/Element.getBBox.php 返回元素的边界框描述

儲存檔案時,要把svg放在div中。

D3.js API 中文手册

svg平移、放大、縮小

 

 

發表於 程式設計 | 發表迴響

[wsl]讓遠端可以瀏覽本機wsl的網頁

參考網址:stackOverFlow

net.bat
 

Powershell -Command Start-Process powershell -ArgumentList '-File d:\0_as\wsl\net.ps1' -Verb runAs 
REM pause

 

net.ps1
 

$remoteport = bash.exe -c "ifconfig eth0 | grep 'inet '"
$found = $remoteport -match '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}';

if( $found ){
  $remoteport = $matches[0];
} else{
  echo "The Script Exited, the ip address of WSL 2 cannot be found";
  exit;
}

#[Ports]

#All the ports you want to forward separated by coma
$ports=@(80);


#[Static ip]
#You can change the addr to your ip config to listen to a specific address
#$addr='0.0.0.0';
$addr='192.168.1.11';
#$addr='192.168.2.14';
$ports_a = $ports -join ",";


#Remove Firewall Exception Rules
iex "Remove-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' ";

#adding Exception Rules for inbound and outbound Rules
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Outbound -LocalPort $ports_a -Action Allow -Protocol TCP";
iex "New-NetFireWallRule -DisplayName 'WSL 2 Firewall Unlock' -Direction Inbound -LocalPort $ports_a -Action Allow -Protocol TCP";

for( $i = 0; $i -lt $ports.length; $i++ ){
  $port = $ports[$i];
  iex "netsh interface portproxy delete v4tov4 listenport=$port listenaddress=$addr";
  iex "netsh interface portproxy add v4tov4 listenport=$port listenaddress=$addr connectport=$port connectaddress=$remoteport";
}

pause

 

發表於 Linux系統, Windows系統 | 發表迴響

[sport]s12編組方式(800公尺8個跑道塞12人)

s12編組方式(800公尺8個跑道塞12人) by sairwolf@gmail.com 110.12.19
人數<=12 1-8依45367821編排,9-12依成績快慢編排。
人數>12且<=24
13==>6+7
14==>7+7
15==>7+8
16==>8+8

17==>8+9
18==>8+10
19==>8+11
20==>8+12

21==>9+12
22==>10+12
23==>11+12
24==>12+12

人數>24 的部分依<=12人的編排方式即可
//S形編組 800公尺塞12人
//傳入$source原始一維陣列
function oos_organize_s12($source)  {      
    $group=(int)((count($source)+11)/12);

    //排好後code_update()再調組
    
    //print_r($source);
    if(count($source)>24)  {
        for($j=($group-1);$j>=2;$j--)  {
            $point=count($source)-12;
            //$b_half
            //echo "$j<br>";
            $ss[$j] = array_splice($source,$point);
            //print_r($ss[$j]);                
        }

    }
    //print_r($source);

    $cs=count($source);
    for($i=0;$i<count($source);$i++)  {
        if($cs>=13 and $cs<=16) { //用S形編組
            if(($i/$group)%2==0)  {
                $ss[$i%$group][(int)($i/$group)]=$source[$i];
                //echo $i."==>[".($i%$group)."][".(int)($i/$group)."]".$ss[$i%$group][(int)($i/$group)]."<br>";
            }
            else  {
                $ss[($group-1)-($i%$group)][(int)($i/$group)]=$source[$i];
                //echo $i."==>[".(($group-1)-($i%$group))."][".(int)($i/$group)."]".$ss[($group-1)-($i%$group)][(int)($i/$group)]."<br>";
            }
        }else if($cs>=17 and $cs<=24) { 
            if($i<8)  //第0組先塞滿8人
                $ss[0][$i]=$source[$i];
            else if($i>=20)  //20以後塞第0組
                $ss[0][$i-12]=$source[$i];
            else  //其它的塞第1組
                $ss[1][$i-8]=$source[$i];        
        }else { //用S12編組
            $ss[(int)($i/12)][$i%12]=$source[$i];
            //echo $i."==>[". (int)($i/12) ."][". $i%12 ."]".$ss[(int)($i/12)][$i%12]."<br>";                
        }

    }
    //print_r($ss);
    
    //971001修正為45367821
    //跑道12345678==>01234567
    //名次56123478==>45012367
    //名次75312468==>64201357
    for($i=0;$i<$group;$i++)  {
        $ss_d[$i][0]=$ss[$i][7];
        $ss_d[$i][1]=$ss[$i][6];
        $ss_d[$i][2]=$ss[$i][2];
        $ss_d[$i][3]=$ss[$i][0];
        $ss_d[$i][4]=$ss[$i][1];
        $ss_d[$i][5]=$ss[$i][3];
        $ss_d[$i][6]=$ss[$i][4];
        $ss_d[$i][7]=$ss[$i][5];

        $ss_d[$i][8]=$ss[$i][8];
        $ss_d[$i][9]=$ss[$i][9];
        $ss_d[$i][10]=$ss[$i][10];
        $ss_d[$i][11]=$ss[$i][11];
    }
    
    
    return $ss_d;
    
}  //function oos_organize_s12

 

發表於 程式設計 | 發表迴響

[sport]手動更換跑道加入拖曳功能

參考網址:https://github.com/vcxiaohan/jquery-plugins/tree/master/dragMove

可以用滑鼠拖曳選手,進行更換跑道的動作了。

發表於 程式設計 | 發表迴響

[js]fancyBox更改loading圖示

fancyBox是個很好用的小工具,如果想要更改loading的圖示,可以將fancyBox\source\fancybox_loading.gif置換掉,
並更改jquery.fancybox.css(v2.1.5)大約96行附近,將width及height改成gif的大小。
 

#fancybox-loading div {
	/* source 44*44  */
	width: 200px;
	height: 200px;
	background: url(fancybox_loading.gif) center center no-repeat;
}


然後再把loading進來的php檔加入sleep(5),讓loading的時間變長,以便觀賞loading動畫。

至於loading的動畫,可以至https://loading.io/製作並下載。

發表於 程式設計, 軟體使用 | 發表迴響

[firefox]瀏覽器預設字型

參考網址:都2021年了,火狐Firefox esr預設中文字型還在用XP時代的新細明體

1. 首先,在Firefox網址列輸入 about:config。然後按下接受風險並繼續之按鈕。

 

2. 在上方搜尋框輸入 font.name-list.*.zh,這時會跑出所有中文字型設定選項。

 

3. 除了monospace(等寬字體)這個不修正外,其他的我們都修正。排第一個的會優先用。原則上簡體字用優先採用Microsoft YaHei,繁體字優先採用Microsoft JhengHei。

 

font.name-list.sans-serif.zh-TW Arial, PMingLiU, MingLiU, MingLiU-ExtB, Microsoft JhengHei

 

調整順序,改成
 

font.name-list.sans-serif.zh-TW Microsoft JhengHei, Arial, PMingLiU, MingLiU, MingLiU-ExtB

 

也就是將Microsoft JhengHei調至最前面就可以了

發表於 軟體使用 | 發表迴響

[WSL]系統檔案放哪兒

C:\Users\your user name\AppData\Local\Packages

如果安裝的是Ubuntu,所以請找到 “CanonicalGroupLimited.Ubuntu”

在LocalState資料夾下有個ext4.vhdx

發表於 Linux系統, Windows系統 | 發表迴響

[sport]window.opener is null 錯誤

110/11/19辦理sport11011a市長盃田徑賽的第三天,突然傳來讀取電子計時檔無法順利匯入的問題
出現的是〞window.opener is null〞的錯誤,研判應是瀏覽器更新後造成的。

參考https://www.w3schools.com/jsref/prop_win_opener.asp的範例檔,同樣的瀏覽器卻可以正常執行
所以就把原本的程式改成用window.open的方式開啟,程式就正常運作了。
 

<?php
$url="ele.php?race_id=$race_id&race_group_id=$race_group_id";
//直接開啟ele會出現window.opener is null 的錯誤,改成用window.open開啟
//echo "<a href=$url target='_blank'>ele</a>";
$open_win_str="na_open_window('win','$url',10,50,760,450,0,0,0,1,0)";
echo "&nbsp;&nbsp;&nbsp;<a href=\"javascript:$open_win_str;\">ele2</a>"; 
?>
<script language="JavaScript1.2">
function na_open_window(name, url, left, top, width, height, toolbar, menubar, statusbar, scrollbar, resizable)
{
  toolbar_str = toolbar ? 'yes' : 'no';
  menubar_str = menubar ? 'yes' : 'yes';
  statusbar_str = statusbar ? 'yes' : 'no';
  scrollbar_str = scrollbar ? 'yes' : 'no';
  resizable_str = resizable ? 'yes' : 'no';
  window.open(url, name, 'left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str);
}

</script>

發表於 程式設計 | 發表迴響

[acer]ACER A715-74G 拆機開箱

參考網址:https://blog.xuite.net/wscc7475/twblog/589045024

和我使用的筆電差不多的型號,我的是A715-74G-52MV,參考看看囉!

發表於 硬體維修 | 發表迴響

[wsa]Windows 11 Dev Channel 安裝Windows Subsystem for Android

參考網址:https://forum.gamer.com.tw/C.php?bsn=60030&snA=588889

 

首先打開 https://store.rg-adguard.net/

選擇Url(Link)

輸入 https://www.microsoft.com/store/productId/9P3395VX91NR

Channel選擇Slow

按下勾勾 等待讀出列表 (如圖)

 

找到 MicrosoftCorporationII.WindowsSubsystemForAndroid_1.7.32815.0_neutral_~_8wekyb3d8bbwe.msixbundle 2021-10-21

右鍵點擊 選擇 另存連結為 (約2.1GB) 下載的時候可能會被系統攔截 選擇保留檔案即可

然後打開Windows Terminal 以管理員身分執行 (路徑根據你的文件所在位置修改)

輸入 Add-AppxPackage -Path C:\Users\Ming\Downloads\MicrosoftCorporationII.WindowsSubsystemForAndroid_1.7.32815.0_neutral___8wekyb3d8bbwe.Msixbundle   

跑完安裝之後叫出開始功能表就能找到Windows Subsystem for Android和Amazon AppStore兩個應用

打開Windows Subsystem for Android勾選開發人員模式之後 後面會顯示可以在127.0.0.1:58526 上連線ADB

 

下載 SDK Platform-Tools for Windows

解壓縮到 C:\Program Files (x86)\platform-tools

在文件路徑上輸入cmd就會自動停在當前目錄開啟命令列

輸入 adb.exe connect 127.0.0.1:58526

然後從apkpure下載好要測試的apk文件

輸入 adb.exe install C:\Users\Ming\Downloads\LINE.apk

出現提示

Performing Streamed Install

Success

就是APP安裝成功了 打開開始功能就可以找到裝好的應用

要移除APP的話對應用圖標右鍵解除安裝即可

發表於 Windows系統 | 發表迴響