Anpassa 3D-diagram i presentationer med PHP
Översikt
Den här artikeln förklarar hur du anpassar ett 3D‑diagram i Aspose.Slides genom att konfigurera Rotation3D‑inställningar såsom RotationX, RotationY, DepthPercents och RightAngleAxes. Den visar hur du skapar en presentation, lägger till ett 3D‑diagram med standarddata, tillämpar de nödvändiga 3D‑vyinställningarna och sparar den ändrade presentationen som en PPTX‑fil.
Ställ in egenskaperna RotationX, RotationY och DepthPercents för ett 3D‑diagram
Aspose.Slides for PHP via Java tillhandahåller ett enkelt API för att ställa in dessa egenskaper. Följande artikel hjälper dig att sätta olika egenskaper som X,Y Rotation, DepthPercents etc. Exempelkoden tillämpar inställningarna för de nämnda egenskaperna.
- Skapa en instans av klassen Presentation.
- Kom åt den första bilden.
- Lägg till ett diagram med standarddata.
- Ställ in Rotation3D‑egenskaperna.
- Skriv den ändrade presentationen till en PPTX‑fil.
$pres = new Presentation();
try {
# Åtkomst till första bilden
$slide = $pres->getSlides()->get_Item(0);
# Lägg till diagram med standarddata
$chart = $slide->getShapes()->addChart(ChartType::StackedColumn3D, 0, 0, 500, 500);
# Ställer in index för diagrammets datasblad
$defaultWorksheetIndex = 0;
# Hämtar diagrammets dataarbetsblad
$fact = $chart->getChartData()->getChartDataWorkbook();
# Lägg till serie
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 0, 1, "Series 1"), $chart->getType());
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 0, 2, "Series 2"), $chart->getType());
# Lägg till kategorier
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 3, 0, "Caetegoty 3"));
# Ställ in Rotation3D-egenskaper
$chart->getRotation3D()->setRightAngleAxes(true);
$chart->getRotation3D()->setRotationX(40);
$chart->getRotation3D()->setRotationY(270);
$chart->getRotation3D()->setDepthPercents(150);
# Hämta andra diagramserien
$series = $chart->getChartData()->getSeries()->get_Item(1);
# Populerar nu seriedata
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 1, 1, 20));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 2, 1, 50));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 3, 1, 30));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 1, 2, 30));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 2, 2, 10));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 3, 2, 60));
# Ställ in OverLap-värde
$series->getParentSeriesGroup()->setOverlap(100);
# Spara presentation till disk
$pres->save("Rotation3D_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
FAQ
Vilka diagramtyper stöder 3D‑läge i Aspose.Slides?
Aspose.Slides stöder 3D‑varianter av stapeldiagram, inklusive Column 3D, Clustered Column 3D, Stacked Column 3D och 100 % Stacked Column 3D, tillsammans med relaterade 3D‑typer som exponeras via klassen ChartType. För en exakt, uppdaterad lista, kontrollera medlemmarna i ChartType i API‑referensen för din installerade version.
Kan jag få en rasterbild av ett 3D‑diagram för en rapport eller webben?
Ja. Du kan exportera ett diagram till en bild via chart API eller rendera hela bilden till format som PNG eller JPEG. Detta är användbart när du behöver en pixelperfekt förhandsgranskning eller vill bädda in diagrammet i dokument, instrumentpaneler eller webbsidor utan att kräva PowerPoint.
Hur presterar byggande och rendering av stora 3D‑diagram?
Prestanda beror på datavolym och visuell komplexitet. För bästa resultat, håll 3D‑effekterna minimala, undvik tunga texturer på väggar och plottområden, begränsa antalet datapunkter per serie när det är möjligt, och rendera till en lämpligt stor output (upplösning och dimensioner) för att matcha målskärmen eller utskriftsbehoven.