လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Imageopenpolygon () ကိုအသုံးပြုနည်း

Imageopenpolygon () ကိုအသုံးပြုနည်း

M66 2025-05-29

PHP ၏ GD စာကြည့်တိုက်ကို သုံး. ဂရပ်များကိုဆွဲယူသောအခါ developer များသည်တစ်ခါတစ်ရံတွင်မယားများပေါ်တွင်ကပ်ရန်လိုအပ်သည်။ အစဉ်အလာအရ, Imageopenpolygon () function ကို function ကိုဆွန်း polygon outline ဆွဲနိုင်ပါတယ်။ သို့သော်တစ်ခါတစ်ရံကျွန်ုပ်တို့သည် IDEFFELPOLYGON () ကို ပိုမိုပြောင်းလွယ်ပြင်လွယ်ပုံဆွဲခြင်းသက်ရောက်မှုများရရှိရန်အတွက်အထူးသဖြင့်အရောင်ဖြည့်စွက်ခြင်းနှင့်စတိုင်များကိုကိုင်တွယ်ရန်လိုအပ်သည့်အခါကျွန်ုပ်တို့လိုအပ်သည်။ ဤဆောင်းပါးသည် Imageopenpolygon () အစား IdentefoldPolygon () ကိုမည်သို့အသုံးပြုရမည် () သည် Hollow Polygons ၏ပြ problem နာကိုဖြေရှင်းရန်မိတ်ဆက်ပေးလိမ့်မည်။

Imageopenpolygon အစား imagefloypolygon () ကိုအဘယ်ကြောင့်အသုံးပြုသည် ()

Imageopenpolygon () သည်အဓိကအားဖြင့် Hollow Polygons ဆွဲရန်အသုံးပြုသည်။ Idefeflepolygon () သည် ဖြည့်ထားသော polygon ကိုတိုက်ရိုက်ဆွဲနိုင်သည်။

Polygons များကိုနယ်နိမိတ်အရောင်များသို့မဟုတ်ပိုမိုရှုပ်ထွေးသောထိန်းချုပ်မှုများဖြင့်ဆွဲယူလိုပါက imageflepolygon () သည် ပို. ပြောင်းလွယ်ပြင်လွယ်ရှိသည်။ အထူးသဖြင့် Imageopenpolygon () မတူကွဲပြားသောပုံဆွဲခြင်းလိုအပ်ချက်များကိုမထောက်ပံ့ပါ

ဘယ်လိုသုံးရမလဲ

အခြေခံအယူအဆကတော့

  1. IDEFFELEPOLYGON ( နောက်ခံသို့မဟုတ်ပွင့်လင်းမြင်သာသောအရောင်ဖြင့်ဖြည့်ပါ)

  2. polygon ၏နယ်နိမိတ်ကိုသီးခြားစီဆွဲရန် စိတ်ကူးeleline () ကို သုံးပါ။

၎င်းသည်လိုချင်သောဆွန်း polygon အကျိုးသက်ရောက်မှုကိုရရှိရန်အတွက်ဖြည့်အရောင်နှင့်နယ်စပ်အရောင်ကိုကိုယ်တိုင်ထိန်းချုပ်ရန်ခွင့်ပြုသည်။

နမူနာကုဒ်

အောက်တွင်ဖော်ပြထားသောဥပမာတစ်ခုမှာ Identefreypolygon ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည့်အပြည့်အဝပုံရိပ်သည် Imageopenpolygon () နှင့်ဆင်တူသည်။

 <?php
// ပတ်တူဖန်တီးပါ
$image = imagecreatetruecolor(300, 300);

// အရောင်များကိုသတ်မှတ်ပါ
$white = imagecolorallocate($image, 255, 255, 255);
$borderColor = imagecolorallocate($image, 0, 0, 0);

// နောက်ခံဖြည့်ပါ
imagefill($image, 0, 0, $white);

// တစ် polygon ၏အချက်ကိုသတ်မှတ်ပါ
$points = [
    50, 50,
    250, 70,
    200, 200,
    100, 250,
    60, 150
];

// Polygons ဖြည့်ပါ(နောက်ခံအရောင်ကိုသုံးပါ,အတွင်းပိုင်းပွင့်လင်းသို့မဟုတ်တူညီသောအရောင်ကိုစောင့်ရှောက်လော့)
imagefilledpolygon($image, $points, count($points) / 2, $white);

// Polygon နယ်နိမိတ်ဆွဲပါ
$num_points = count($points) / 2;
for ($i = 0; $i < $num_points; $i++) {
    $x1 = $points[$i * 2];
    $y1 = $points[$i * 2 + 1];
    $x2 = $points[(($i + 1) % $num_points) * 2];
    $y2 = $points[(($i + 1) % $num_points) * 2 + 1];
    imageline($image, $x1, $y1, $x2, $y2, $borderColor);
}

// output ကိုပုံ
header('Content-Type: image/png');
imagepng($image);

// အရင်းအမြစ်များကိုအခမဲ့
imagedestroy($image);
?>

ကုဒ်ဖော်ပြချက်

  • IDEFEFELPOLYGON () အတွင်းပိုင်း area ရိယာကိုအရောင်ပြောင်းခြင်းမှကာကွယ်ရန်နောက်ခံအရောင်နှင့်ဖြည့်ထားသည်။

  • Polygon ၏အပြင်ဘက်နယ်စပ်ကိုဆွဲရန် Vertex တစ်ခုချင်းစီကိုကိုယ်တိုင်ချိတ်ဆက်ရန် loop imageline () ကို သုံးပါ။

  • ($ i + 1)% $ numpoints $ numpoints သည် နောက်ဆုံးအချက်နှင့်ချိတ်ဆက်နိုင်သည်ကိုသေချာစေသည်။

မှတ်သားရန်အရာ

  • အကယ် . သင်သည်အတွင်းပိုင်းပွင့်လင်းမြင်သာမှုကိုသင်လိုချင်ပါက,

  • နောက်ခံသည်အစိုင်အခဲအရောင်မဟုတ်လျှင် implainflededpolygon () ကို သင့်လျော်စွာဖြည့်စွက်ခြင်း,

extension: အစစ်အမှန်စီမံကိန်းများအတွက်လျှောက်လွှာ